Напишите программу, которая перебирает целые числа, большие \(7~200~000,\) в порядке возрастания и ищет среди них числа, представимые в виде произведения ровно трёх различных простых множителей, необязательно различных, каждый из которых содержит в своей записи одновременно цифры \(3\) и \(7.\) В ответе запишите первые пять чисел в порядке возрастания, справа от каждого числа запишите его наибольший простой делитель.
Решение:
Python
from math import isqrt
def factor(n):
ans = []
for d in range(2, isqrt(n) + 1):
while n % d == 0:
ans.append(d)
n //= d
if n > 1:
ans.append(n)
return ans
n = 7_200_000
q = 0
while q < 5:
n += 1
divs = factor(n)
if len(divs) == len(set(divs)) == 3:
if all('3' in d and '7' in d for d in map(str, divs)):
print(n, max(divs))
q += 1
Ответ:
\(7276207 \,\, 307\)
\(7327813 \,\, 2713\)
\(7330733 \,\, 733\)
\(7376431 \,\, 2731\)
\(7390739 \,\, 739\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене