Задание 25. Информатика. ЕГЭ. Статград. 01.04.2025-1
- Просмотры: 169
- Изменено: 1 апреля 2025
Пусть \(M\) — максимальный простой натуральный делитель целого числа, не считая самого числа. Если таких делителей у числа нет, то считаем значение \(M\) равным нулю. Напишите программу, которая перебирает целые числа, большие \(1~750~000,\) в порядке возрастания и ищет среди них такие, для которых \(M\) не больше \(15~000\) и оканчивается на \(7.\) В ответе запишите первые пять найденных чисел в порядке возрастания.
Например, для числа \(105\) \(M = 7.\)
Решение:
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 max_div(n):
divs = {0}
for x in range(2, int(n**0.5) + 1):
if n % x == 0:
if is_prime(x):
divs.add(x)
t = n // x
if is_prime(t):
divs.add(t)
return max(divs)
i = 0
n = 1_750_000
while i < 5:
n += 1
md = max_div(n)
if md <= 15_000 and md % 10 == 7:
print(n)
i += 1
Ответ:
\(1750001\)
\(1750006\)
\(1750023\)
\(1750041\)
\(1750044\)