Задание 25. Информатика. ЕГЭ. Поляков-2572

Просмотры: 388
Изменено: 24 ноября 2024

(А.Н. Носкин) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку \([190201; \, 190260]\), числа, имеющие ровно \(4\) различных ЧЁТНЫХ делителя. В ответе для каждого найденного числа запишите два его наибольших ЧЁТНЫХ делителя в порядке убывания.

Решение:

Python


def find_div(n):
    divisors = set()
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            if i % 2 == 0:
                divisors.add(i)
            if n // i % 2 == 0:
                divisors.add(n//i)
        if len(divisors) > 4:
            break
    return divisors

for i in range(190201, 190261):
    d = [*find_div(i)]
    if len(d) == 4:
        d.sort()
        print(d[3], d[2])

Ответ:
190226   838
190234   17294
190238   2606
190252   95126
190258   758