Вам нужно сбросить a
на True
для каждого значения сейчас. Также a == False
это просто not a
(как if a==True
это if a
)
for n in range(2,13):
a = True
for i in range(2,n):
if n % i ==0:
a = False
if not a:
print(n, ": Not prime.")
else:
print(n,": Prime")
Некоторые советы по поводу остановки l oop
- на в квадрате root числа
- используйте
break
, чтобы прекратить зацикливание, зная, что оно ложное - используйте
for/else
, если разрыв не найден, он переходит в else
for n in range(2,13):
for i in range(2,int(n**0.5)+1):
if n % i ==0:
print(n, ": Not prime.")
break
else:
print(n,": Prime")
2 : Prime
3 : Prime
4 : Not prime.
5 : Prime
6 : Not prime.
7 : Prime
8 : Not prime.
9 : Not prime.
10 : Not prime.
11 : Prime
12 : Not prime.