Пусть M — разность максимального и минимального простых натуральных делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, большие 8 117 600 756, в порядке возрастания и ищет среди них такие, для которых M является простым числом и в своей записи содержит не менее четырёх цифр 1.
В ответе запишите в первом столбце таблицы первые 5 найденных чисел в порядке возрастания, а во втором столбце — соответствующие им значения M.
Количество строк в таблице для ответа избыточно.
Основная волна ЕГЭ по информатике 19.06.2026 – задание №25
Решение:
Решение на Python
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
def prosto(n): for d in range(2,int(n**0.5)+1): if n%d==0: return False return True def f(n): a = [] for d in range(2,int(n**0.5)+1): if n%d==0: if prosto(d): a.append(d) if prosto(n//d): a.append(n//d) return a for i in range(8_117_600_757,8_500_000_000): t = f(i) if len(t)>=2: M = max(t)-min(t) if prosto(M) and str(M).count('1')>=4: print(i,M) |
ИЛИ
|
1 2 3 4 5 6 7 8 9 10 11 12 |
def p(x): for i in range(2, int(x**0.5)+1): if x % i == 0: return [i] + p(x // i) return [x] for x in range(8_117_600_757, 8_200_000_000): d = p(x) if len(d) > 1: M = max(d) - min(d) if str(M).count('1') >= 4 and len(p(M)) == 1: print(x, M) |
Ответ:
8117601578 1117817
8117603854 11117
8117607130 811760711
8117608904 1014701111
8117611292 111119
