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

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [32000; 43000], числа, имеющие ровно десять различных натуральных делителя, не считая единицы и самого числа. В качестве ответа запишите количество таких чисел.

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

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