Загрузка данных


Напишите программу, которая перебирает целые числа, большие 4 501 347 296, в порядке возрастания и ищет среди них числа, представленные в виде произведения ровно двух простых множителей, не обязательно различных, каждый из которых содержит ровно один раз в своей записи последовательность цифр «53».

В ответе запишите в первом столбце таблице первые пять найденных чисел в порядке возрастания, во втором столбце  — для каждого из них наименьший найденный множитель для каждого из них.

Количество строк в таблице для ответа избыточно.


Правильное ли решение?
# s = set()
#
# for i in range(0, 10**4):
#     n = int(f'3{str(i)[0]}1{str(i)[1:]}57')
#     if n % 2023 == 0:
#         print(n, n // 2023, n % 2023)
#         s.add(n)
#
# print(s)
n = 4_501_347_296
c = 0
while True:
    d = []
    for i in range(2, round(n**0.5)+1):
        if n % i == 0:
            d = [str(i)] + [str(n // i)]
            break



    if d and ('53' in d[0] or '53' in d[1]):
        c += 1
        print(n, d[0], d[1])
    if c == 5:
        break
    n += 1