Написать формулу Эйлера по-простому

введите сюда описание изображения

n = int(input("Введите число: "))
k = 0 #проверка
b=[] #массив, чтобы делить каждое число до n
cnt=0 #счётчик простых чисел
for j in range(2,n+1):
    b.append(j) #заполнение массива числами
for a in b:
    for i in range(2, (a//2)+1): #проверка на простоту
        if (a % i == 0):
            print(a,i)
            k = k+1
    if (k <= 0):
        cnt+=1 #если простое + к счётчику
print(cnt) #вывод

Почему-то не хочет считать простые числа после 3. Хотелось бы помощи. Я специально решил вывести числа, которые не подходят (то есть являются непростыми) с их делителями. Пример на картинке показывает, что числа 5 и 7 по какой-то причине программа не затрагивает.


Ответы (1 шт):

Автор решения: MBo
for a in b:
    k = 0 # обнуляем счётчик для каждого числа
    for i in range(2, (a//2)+1): #проверка на простоту
→ Ссылка