Пусть M — максимальный простой натуральный делитель целого числа, не считая самого числа. Если таких делителей у числа нет, то считаем значение M равным нулю.
Напишите программу, которая перебирает целые числа, большие 1 750 000, в порядке возрастания и ищет среди них такие, для которых M не больше 15 000 и оканчивается на 7. В ответе запишите первые пять найденных чисел в порядке возрастания.
Например, для числа 105 M = 7.
Ответ:
Приведём решение на языке Python.
def prime(n):
if n == 2:
return True
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
def maxi_div(n):
deliteli = [0]
for i in range(2, int(n**0.5)+1):
if n%i == 0:
if prime(i):
deliteli.append(i)
if prime(n//i):
deliteli.append(n//i)
return max(deliteli)
count = 0
for i in range (1750001, 10**10):
maxi = maxi_div(i)
if maxi <= 15000 and maxi % 10 == 7:
print(i)
i += 1
count += 1
if count == 5:
break
В результате работы программа должна вывести следующее:
1750001
1750006
1750023
1750041
1750044
Ответ: 1750001; 1750006; 1750023; 1750041; 1750044.

