Пусть \(M\) – сумма минимального и максимального простых натуральных делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то значение \(M\) считается равным нулю.
Напишите программу, которая перебирает целые числа, большие \(7~800~000,\) в порядке возрастания и ищет среди них такие, для которых \(M\) оканчивается на \(63\) и кратно общему количеству различных простых делителей числа. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – соответствующие им значения \(M.\)
Например, для числа \(14\) \(M= 2+7 = 9.\)
Количество строк в таблице для ответа избыточно.
Решение:
Python
from math import isqrt
def factor(n):
divs = []
for d in range(2, isqrt(n) + 1):
while n % d == 0:
divs.append(d)
n //= d
if n > 1:
divs.append(n)
return divs
N = 7_800_000
q = 0
while q < 5:
N += 1
divs = factor(N)
if len(divs) > 1:
M = min(divs) + max(divs)
k = len(set(divs))
if M % 100 == 63 and M % k == 0:
print(N, M)
q += 1
Ответ:
\(7800610 \,\, 780063\)
\(7801042 \,\, 8463\)
\(7801312 \,\, 1863\)
\(7801916 \,\, 8163\)
\(7802032 \,\, 69663\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене