Напишите программу, которая перебирает целые числа, большие 4 501 347 296, в порядке возрастания и ищет среди них числа, представленные в виде произведения ровно двух простых множителей, не обязательно различных, каждый из которых содержит ровно один раз в своей записи последовательность цифр «53».
В ответе запишите в первом столбце таблице первые пять найденных чисел в порядке возрастания, во втором столбце — для каждого из них наименьший найденный множитель для каждого из них.
Количество строк в таблице для ответа избыточно.
Ответ:
##Приведём решение на языке Python.
def f(x):
for i in range(2, int(x**0.5)+1):
if x%i==0:
return [i]+f(x//i)
return [x]
count = 0
for x in range(4_501_347_297, 4_600_000_000):
d = f(x)
if len(d) == 2:
# Извлекаем каждый из двух множителей отдельно
p1, p2 = d[0], d[1]
# Проверяем каждый строго изолированно
if str(p1).count('53') == 1 and str(p2).count('53') == 1:
print(x, min(d))
count += 1
if count == 5:
break

