(Ю. Дрождинин) Напишите программу, которая перебирает целые числа, бóльшие \(123456789,\) в порядке возрастания и ищет среди них такие, которые можно представить в виде произведения семи не обязательно различных простых сомножителей, сумма которых содержит цифру \(5,\) и при этом максимальный из этих сомножителей оканчивается на \(9.\) В ответе запишите в первой строке таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – для каждого из них соответствующий наибольший из найденных простых сомножителей.
Решение:
Python
def factor(n):
ans = []
for i in range(2, int(n**0.5) +1):
while n % i == 0:
ans.append(i)
n //= i
if n > 1:
ans.append(n)
return ans
q = 0
n = 123_456_789
while q < 5:
n += 1
f = factor(n)
if len(f) == 7 and '5' in str(sum(f)) and max(f) % 10 == 9:
print(n, max(f))
q += 1
Ответ:
\(123456900 \,\, 58789\)
\(123457020 \,\, 139\)
\(123457136 \,\, 36919\)
\(123457360 \,\, 118709\)
\(123457460 \,\, 479\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене