*(А. Сражаев) Напишите программу, которая перебирает целые числа, превышающие \(8~700~000,\) которые можно представить в виде произведения \(a^2 \cdot b^2,\) где \(a\) и \(b\) – два различных простых натуральных числа. В ответе запишите в первом столбце первые \(5\) найденных чисел в порядке возрастания, а во втором столбце — сумму чисел \(a\) и \(b.\)
Решение:
Python
from math import isqrt, ceil
def factor(n):
divs = []
for x in range(2, isqrt(n) + 1):
while n % x == 0:
divs.append(x)
n //= x
if n > 1:
divs.append(n)
return divs
n = ceil(8_700_000 ** 0.5)
q = 0
while q < 5:
d = factor(n)
if len(d) == 2 and len(set(d)) == 2:
print(n**2, sum(d))
q += 1
n += 1
Ответ:
\(8708401 \,\, 240\)
\(8755681 \,\, 280\)
\(8773444 \,\, 1483\)
\(8791225 \,\, 598\)
\(8797156 \,\, 1485\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене