Задание 25. Информатика. ЕГЭ. Шастин. 9.2.2025
- Просмотры: 632
- Изменено: 11 февраля 2025
(Д. Бахтиев) Пусть \(R\) — разность максимального и минимального простых делителей целого числа, не считая самого числа. Напишите программу, которая перебирает целые числа, большие \(3~333~337\) в порядке возрастания и ищет среди них такие, для которых \(R\) больше \(1000\) и кратно \(3.\) В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце — соответствующие им значения \(R.\)
Решение:
Python
def is_prime(n):
if n == 2:
return True
for x in range(2, int(n**0.5) + 1):
if n % x == 0:
return False
return True
def find_r(n):
divisors = set()
for x in range(2, int(n**0.5) + 1):
if n % x == 0:
if is_prime(x):
divisors.add(x)
tmp = n // x
if is_prime(tmp):
divisors.add(tmp)
if divisors:
return max(divisors) - min(divisors)
else:
return -1
i = 0
n = 3_333_337
while i < 5:
n += 1
R = find_r(n)
if R > 1000 and R % 3 == 0:
print(n, R)
i += 1
Ответ:
\(3333338 \,\, 9309\)
\(3333340 \,\, 166665\)
\(3333342 \,\, 555555\)
\(3333349 \,\, 2748\)
\(3333354 \,\, 1287\)