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

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

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

Решение:

Python


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

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

Ответ:
38891   194455
1193   194459
1399   194461
97231   194462
1721   194473
443   194477
97241   194482
4523   194489
17681   194491