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

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

def count_divs(n): # функция для подсчёта делителей числа
    counter = 0
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            counter += 1
            if i != n//i:
                counter += 1
                if counter > 4: # для оптимизации выходим из функции если кол-во делителей больше 4
                    return 0
    return counter


ans = 0
for i in range(856789, 1561023+1):
    temp = count_divs(i)
    if temp == 4:
        ans += 1
print(ans)

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