fuyukaidesu
выводит числа у которых больше двух делителей
не она выводит числа (последнее) с нечетным количеством делителей (ну кроме чисел с одним делителем)
поправиим это
In [5]: from math import sqrt
...: divCount = 2 # нужное количество делителей
...: for n in range(1, 100+1):
...: divs = []
...: q = round(sqrt(n))
...: if q*q == n:
...: divs = [q]
...: q -= 1
...: for d in range(1,q+1):
...: if n % d == 0:
...: divs = divs + [d, n//d]
...: if len(divs) == divCount:
...: break
...: if len(divs) > divCount or len(divs) == 1:
...: print(sorted(divs)[-1])
...:
...:
1
4
9
16
25
36
49
64
81
100
ну и с изменившемеся условиями
In [8]: from math import sqrt
...: divCount = 2 # нужное количество делителей
...: num = 5
...: for n in range(1, 100+1):
...: divs = []
...: q = round(sqrt(n))
...: if q*q == n:
...: divs = [q]
...: q -= 1
...: for d in range(1,q+1):
...: if n % d == 0:
...: divs = divs + [d, n//d]
...: if len(divs) == divCount:
...: break
...: if len(divs) == num and (len(divs) > divCount or len(divs) == 1):
...: print(sorted(divs)[-1])
...:
...:
...:
...:
...:
16
81