Задание 25. Информатика. ЕГЭ 2024. Основная волна. 07.06.2024

Просмотры: 379
Изменено: 25 ноября 2024

Пусть \(M\) — сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение \(M\) считается равным нулю.

Напишите программу, которая перебирает целые числа, большие \(800~000\), в порядке возрастания и ищет среди них такие, для которых значение \(M\) оканчивается на \(4\). В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце — соответствующие им значения \(M\).

Например, для числа \(20\) \(M = 2 + 10 = 12\).

Количество строк в таблице для ответа избыточно.

Решение:

Python


def divisors_sum(n):
    d1 = d2 = 0
    for x in range(2, int(n**0.5) + 1):
        if n % x == 0:
            d1 = x
            tmp = n // x
            if tmp != d1:
                d2 = tmp
            break
    return d1 + d2

i = 0
N = 800_000

while i < 5:
    N += 1
    M = divisors_sum(N)
    if M % 10 == 4:
        print(N, M)
        i += 1

Ответ:
\(800004 \,\, 400004\)
\(800009 \,\, 114294\)
\(800013 \,\, 266674\)
\(800024 \,\, 400014\)
\(800033 \,\, 61554\)