Задание 25. Информатика. ЕГЭ 2024. Пересдача. 04.07.2024

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

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

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем — значение наименьшего делителя, оканчивающегося на цифру \(7\), не равного ни самому числу, ни числу \(7\).
Строки выводятся в порядке возрастания найденных чисел.

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

Решение:

Python


def divisors(n):
    d = []
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            d.append(i)
            d.append(n // i)

    return sorted(d)

k = 0
n = 700_000

while k < 5:
    n += 1
    for d in divisors(n):
        if d % 10 == 7 and d != 7:
            k += 1
            print(n, d)
            break

Ответ:
\(700002 \,\, 27\)
\(700003 \,\, 37\)
\(700005 \,\, 6087\)
\(700007 \,\, 77\)
\(700008 \,\, 29167\)