Пусть \(N(k) = 500~000~000 + k,\) где \(k\) – натуральное число. Найдите пять наименьших значений \(k,\) при которых \(N(k)\) нельзя представить в виде произведения трёх натуральных чисел, больших \(1.\) В ответе запишите найденные значения \(k\) в порядке убывания, справа от каждого значения запишите наибольший делитель \(N(k),\) не равный самому числу.
Решение:
Python
from math import isqrt
def is_prime(n):
if n == 2:
return True
if n & 1 == 0:
return False
for x in range(3, isqrt(n) + 1, 2):
if n % x == 0:
return False
return True
q = 0
ans = []
N = 500_000_000
k = 0
while q < 5:
k += 1
t = N + k
if is_prime(t):
ans.append((k, 1))
q += 1
continue
for d in range(2, isqrt(t) + 1):
if t % d == 0:
if is_prime(t // d):
ans.append((k, t // d))
q += 1
break
for k, d in ans[::-1]:
print(k, d)
Ответ:
\(21 \,\, 266099\)
\(19 \,\, 166666673\)
\(17 \,\, 45454547\)
\(9 \,\, 1\)
\(3 \,\, 1\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене