Пусть M — максимальный простой натуральный делитель целого числа, не считая самого числа. Если таких делителей у числа нет, то считаем значение M равным нулю.
Напишите программу, которая перебирает целые числа, большие 1 825 000, в порядке возрастания и ищет среди них такие, для которых M не больше 25 000 и оканчивается на 3. В ответе запишите первые пять найденных чисел в порядке возрастания.
Например, для числа 105 M = 7.
Ответ:
Приведем решение на языке Python.
def div(x):
d = set()
for i in range(2, int(x**0.5)+1):
if x%i==0:
d.add(i)
d.add(x//i)
return sorted(d)
def p(x):
for i in range(2, int(x**0.5)+1):
if x%i==0:
return 0
return x > 1
k = 0
for x in range(1_825_001, 1_850_000):
d = [i for i in div(x) if p(i)]
if len(d)>0:
m = max(d)
if m <= 25_000 and m%10==3:
if k == 5:
break
print(x); k += 1
В результате работы программа должна вывести следующее:
1825001
1825002
1825010
1825025
1825028
Ответ: 1825001 1825002 1825010 1825025 1825028.

