Алгоритм решения задания 15. Часть 3
Учимся решать 15 задания третьего типа
Читать
Напишите программу, которая перебирает целые числа, бóльшие 1 125 000, в порядке возрастания и ищет среди них такие, у которых есть натуральный делитель, оканчивающийся на цифру 7 и не равный ни самому числу, ни числу 7.
В ответе запишите в первой строке таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – наименьший делитель для каждого из них, оканчивающийся цифрой 7, не равный ни самому числу, ни числу 7.
from math import isqrt
def f(num):
res = set()
for i in range(2, isqrt(num) + 1):
if num % i == 0:
res |= {i, num // i}
for div in sorted(res):
if div % 10 == 7 and div != 7:
return div
return 0
cnt = 0
for i in range(1_125_000, 10 ** 20):
if res := f(i):
print(i, res)
cnt += 1
if cnt == 5:
break
