Пусть R — сумма максимального и минимального простых делителей целого числа, не считая единицы и самого числа. Если у числа нет простых делителей, то считаем значение R равным нулю. Напишите программу, которая перебирает целые числа, большие 6 000 000, в порядке возрастания и ищет среди них первые шесть таких чисел, для которых R заканчивается на 19.
Количество строк в таблице для ответа избыточно.
Ответ:
Приведём решение Юрия Красильникова на языке Python.
def prostoe(n):
k = 2
while k**2 <= n:
if n%k == 0: return False
k += 1
return True
def r(n):
d = set()
k = 2
while k**2 <= n:
if n%k == 0: d |= {k,n//k}
k += 1
p = [x for x in d if prostoe(x)]
return 0 if len(p) == 0 else min(p) + max(p)
k = 0
n = 6000001
while k < 6:
if r(n)%100 == 19:
print(n)
k += 1
n += 1
В результате работы программа должна вывести следующее:
6000002
6000034
6000176
6000190
6000272
6000276

