Задача к ЕГЭ по информатике на тему «делители числа» №8

Найдите все натуральные числа, принадлежащие отрезку [22333; 88999], у которых ровно 3  различных нечётных делителя (количество чётных делителей может быть любым). В ответе укажите количество данных чисел.

n = set() # Подходящие числа
for x in range(22333, 89000):
    ds = set() # Делители числа
    for d in range(1, round(x**0.5)+1):
     # Рассматриваем парные множители
        if x % d == 0:
            if d % 2 != 0:
                ds.add(d)
            if (x//d) % 2 != 0:
                ds.add(x//d)
        # Если делителей уже больше 3, то прекращаем работу цикла - такие числа нам не подходят
        if len(ds) > 3:
            break
    if len(ds) == 3:
        n.add(x)
print(len(n))

Ответ: 106
Оцените статью
Я решу все!