Вариант 1
наименьший и наибольший делители · строк: 5Пусть M — сумма минимального и максимального натуральных делителей целого числа не считая единицы и самого числа. Если таких делителей у числа нет то значение M признаётся равным нулю. Напишите программу которая перебирает целые числа бо́льшие 732 400 в порядке возрастания и ищет среди них такие для которых M оканчивается на 1. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания а во втором столбце — соответствующие им значения M. Например для числа 20 M = 2 + 10 = 12.
Разбор
Идея. Наименьший делитель, кроме 1, — это наименьший простой делитель d; наибольший делитель, кроме самого числа, — n / d. Ищем d перебором от 2 до √n: если делителей нет, число простое и M = 0.
Ответ (число — M): 732418 — 366211; 732438 — 366221; 732458 — 366231; 732478 — 366241; 732498 — 366251.
Ответ: 732418 366211; 732438 366221; 732458 366231; 732478 366241; 732498 366251
Решение на Python.
def M(n):
d = 2
while d * d <= n:
if n % d == 0:
return d + n // d
d += 1
return 0
n = 732400
found = 0
while found < 5:
n += 1
m = M(n)
if m != 0 and m % 10 == 1:
print(n, m)
found += 1