Напишите программу, которая перебирает целые числа, большие 8 996 452, в порядке возрастания и ищет среди них числа, представленные в виде произведения ровно двух простых множителей, не обязательно различных, каждый из которых содержит в своей записи ровно две цифры 3. В ответе в первом столбце таблицы запишите первые 5 найденных чисел в порядке возрастания, а во втором столбце – для каждого из чисел соответствующий им наибольший из найденных множителей.
Решение:
Python
from math import isqrt
def factor(n):
divs = []
for d in range(2, isqrt(n) + 1):
while n % d == 0:
divs.append(d)
n //= d
if n > 1:
divs.append(n)
return divs
q = 0
n = 8_996_452
while q < 5:
n += 1
div = factor(n)
if len(div) == 2 and all(str(z).count('3') == 2 for z in div):
print(n, div[1])
q += 1
Ответ:
\(9001609 \,\, 24133\)
\(9002887 \,\, 38639\)
\(9006149 \,\, 38653\)
\(9012167 \,\, 3853\)
\(9012373 \,\, 23531\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене