Напишите программу, которая перебирает целые числа, большие \(5~000~000,\) в порядке возрастания и ищет среди них числа, представимые в виде произведения ровно трёх простых множителей, необязательно различных, каждый из которых содержит в своей записи хотя бы одну цифру \(2\) или \(3.\) В ответе запишите первые пять чисел в порядке возрастания.
Решение:
Python
from math import isqrt
def factor(n):
divs = []
for i in range(2, isqrt(n) + 1):
while n % i == 0:
divs.append(i)
n //= i
if n > 1:
divs.append(n)
return divs
q = 0
n = 5_000_000
while q < 5:
n += 1
d = factor(n)
if all('2' in str(x) or '3' in str(x) for x in d):
print(n)
q += 1
Ответ:
\(5000004\)
\(5000008\)
\(5000012\)
\(5000018\)
\(5000022\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене