Задание 25 ЕГЭ: простые делители: условие на M
Наименьший и наибольший простые делители: условие на M. Тема номера — делители и маски чисел. Ниже — пример с ответом и решением; кнопкой под ним можно решить такую же задачу с другими числами, ответ проверится сразу.
Пример
Пусть M — разность наибольшего и наименьшего простых делителей числа, не считая самого числа. Если у числа нет таких делителей (число простое), считаем значение M неопределённым.
Найдите пять наименьших натуральных чисел, больших 730 174, для которых M определено и является простым числом. В ответе запишите найденные числа в порядке возрастания, справа от каждого — соответствующее значение M.
Ответ
730230 239; 730236 149; 730276 2309; 730292 71; 730298 11777Решение
Раскладываем число на простые множители делением: первый найденный простой делитель — наименьший, последний (или остаток после деления, если он больше 1) — наибольший. Простые числа пропускаем: у них нет простых делителей, кроме самих себя.
Ответ:
730230 239
730236 149
730276 2309
730292 71
730298 11777
def prime_ends(n):
small = big = None
m, d = n, 2
while d * d <= m:
if m % d == 0:
small = small or d
big = d
while m % d == 0:
m //= d
d += 1
if m > 1 and m != n:
big = m
small = small or m
return small, big
n, found = 730174, 0
while found < 5:
n += 1
small, big = prime_ends(n)
if small is None:
continue
M = big - small
if M > 1 and all(M % d for d in range(2, int(M ** 0.5) + 1)):
print(n, M)
found += 1