Найдите все натуральные числа, принадлежащие отрезку \([100~000~000; \, 101~000~000],\) у которых ровно три различных чётных делителя. В ответе перечислите найденные числа в порядке возрастания, справа от каждого числа запишите его второй по величине нетривиальный делитель (не равный \(1\) и самому числу). Первым по величине считается меньший из нетривиальных делителей числа.
Решение:
Python
from math import ceil
def is_prime(n):
if n <= 2:
return n == 2
if n & 1 == 0:
return False
for i in range(3, int(n ** 0.5) + 1, 2):
if n % i == 0:
return False
return True
n0 = 100_000_000 // 2
n1 = 101_000_000 // 2
for d in range(ceil(n0 **0.5), int(n1 ** 0.5) + 1):
if is_prime(d):
print(2 * d**2, d)
Ответ:
\(100224482 \,\, 7079\)
\(100905218 \,\, 7103\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене