Решение: Поиск чисел по делителям
Пусть $M$ — сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение $M$ равным нулю.
Напишите программу, которая перебирает целые числа, большие 800 000, в порядке возрастания и ищет среди них такие, для которых значение $M$ оканчивается на 6. Выведите первые пять найденных чисел и соответствующие им значения $M$.
Для каждого из пяти таких найденных чисел в отдельной строке сначала выведите само число, затем — значение $M$. Строки выводятся в порядке возрастания найденных чисел.
Например, для числа 20 $M = 2 + 10 = 12$.
Решение по шагам
4 шагаДля каждого числа перебираем делители от 2 до квадратного корня из числа. Первый найденный делитель является минимальным нетривиальным делителем и простым числом.
$$d = p$$Максимальный собственный делитель числа равен частному от деления числа на его минимальный делитель.
$$q = \dfrac{n}{p}$$Вычисляем $M = p + q$ и оставляем числа, у которых последняя цифра значения $M$ равна 6.
Первые подходящие числа и значения $M$: $800008 \to 400006$, $800019 \to 266676$, $800023 \to 114296$, $800028 \to 400016$, $800049 \to 266686$.
800008 400006
800019 266676
800023 114296
800028 400016
800049 266686
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Включают единицу или само число в список делителей.
Ищут максимальный делитель перебором вместо вычисления частного n/p.
Выводят числа, для которых M не оканчивается цифрой 6.
Нарушают порядок возрастания найденных чисел.