(А. Сражаев) Напишите программу, которая перебирает целые числа, бóльшие \(3~909~600,\) в порядке возрастания и ищет среди них такие, которые можно представить в виде произведения семи не обязательно различных простых множителей, максимальный множитель которого больше суммы других множителей, не равных ему. В ответе запишите в первой строке таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – для каждого из них соответствующий наибольший из найденных множителей.
Решение:
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 = 3_909_600
while q < 5:
n += 1
d = factor(n)
if len(d) == 7:
sd = sum([x for x in d if x != d[-1]])
if sd and d[-1] > sd:
print(n, d[-1])
q += 1
Ответ:
\(3909612 \,\, 109\)
\(3909630 \,\, 19\)
\(3909648 \,\, 1733\)
\(3909672 \,\, 4177\)
\(3909720 \,\, 1051\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене