Обозначим через \(P(N)\) – произведение \(5\) наименьших различных нетривиальных делителей натурального числа \(N\) (не считая единицы и самого числа). Если у числа \(N\) меньше \(5\) таких делителей, то \(P(N)\) считается равным нулю. Найдите \(5\) наименьших натуральных чисел, превышающих \(300~000~000,\) для которых \(P(N)\) оканчивается на \(31\) и не превышает \(N.\) В ответе для каждого найденного числа запишите сначала значение \(P(N),\) а затем – наибольший делитель, вошедший в произведение \(P(N).\)
Решение:
Python
from math import isqrt
q = 0
for n in range(300_000_001, 10**100):
divs = list({d for x in range(2, isqrt(n) + 1) if n % x == 0
for d in (x, n // x)})
if len(divs) >= 5:
divs.sort()
p = 1
for x in divs[:5]:
p *= x
if p % 100 == 31 and p <= n:
q += 1
print(p, divs[4])
if q == 5:
break
Ответ:
\(26222031 \,\, 199\)
\(2481831 \,\, 53\)
\(303831 \,\, 33\)
\(1274931 \,\, 59\)
\(143483131 \,\, 121\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене