Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [768900; 769500], числа, имеющие ровно 10 различных делителей. В ответе для каждого найденного числа запишите два его наибольших делителя в порядке возрастания через пробел.
Пример ввода ответа: делитель1.1 делитель1.2 делитель2.1 делитель2.2 …
for i in range(768900, 769501):
ds = set() # Делители числа
for d in range(1, int(i**0.5)+1):
if i % d == 0:
ds.add(d)
ds.add(i//d)
# Если делителей уже > 10, то смысла идти дальше нет - такие числа нам не подходят
if len(ds) > 10:
break
if len(ds) == 10:
# Делаем из множества отсортированный список,
# чтобы можно было по индексам найти наибольшие делители
ds = sorted(list(ds))
print(ds[-2], ds[-1])
Ответ: 384584 769168 256419 769257 384632 769264 153875 769375 384728 769456