Найдите пять последних натуральных чисел на отрезке , которые имеет ровно
делителя. В ответе укажите подходящие числа в порядке возрастания через пробел.
def count_del(x): # функция, которая проверяет 64 делителя ли у числа
count = 2
for i in range(2, int(x**0.5)+1):
if x % i == 0:
count += 1
if i != x // i:
count += 1
if count > 64: # для оптимизации выходим из функции если кол-во делителей больше 64
return False
return count == 64 # проверка, что у числа 64 делителя
ans = []
for i in range(101010101, 1010101-1, -1): # для оптимизации делаем перебор от большего к меньшему
if count_del(i):
ans += [i]
if len(ans) == 5:
print(*sorted(ans))
break
Ответ: 101009928 101009937 101009958 101010024 101010090