(Р. Косов) Напишите программу, которая перебирает числа, большие \(9~590~000,\) в порядке возрастания и находит первые \(5\) чисел, которые можно представить в виде произведения ровно семи различных простых сомножителей, среди которых ровно \(2\) содержат цифру \(7.\) Запишите эти \(5\) чисел в порядке возрастания, справа от каждого числа запишите сумму его сомножителей, содержащих цифру \(7.\)
Решение:
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
n = 9_590_000
q = 0
while q < 5:
n += 1
divisors = factor(n)
if len(divisors) == len(set(divisors)) == 7:
d2 = [d for d in divisors if '7' in str(d)]
if len(d2) == 2:
print(n, sum(d2))
q += 1
Ответ:
\(9635010 \,\, 104\)
\(9658110 \,\, 44\)
\(9659910 \,\, 64\)
\(9662730 \,\, 54\)
\(9671970 \,\, 86\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене