问质数 [英] Asking Prime number
本文介绍了问质数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试着看看数字 2 ~ 12 中的素数是什么,我写了一些代码.但是在3"之后,即使存在11",它也只会打印非质数".有什么问题?
I tried to see what is Prime number in number 2 ~ 12 , and I wrote some codes. But after '3', it only prints 'Not Prime number' even if '11' is there. What is the problem?
a=True
for n in range(2,13):
for i in range(2,n):
if n % i ==0:
a=False
if a == False:
print(n, ": Not prime.")
else:
print(n,": Prime")
推荐答案
您需要将每个 now 值的 a
重置为 True
.另外 a == False
只是 not a
(如 if a==True
是 if a
)>
You need to reset a
to True
for each now value. Also a == False
is just not a
(as if a==True
is 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")
<小时>
关于循环的一些建议
Some advices about the loop
- 在数字的平方根处停止
- 使用
break
在知道错误后停止循环 - 使用
for/else
,如果没有发现中断,则进入else
- stop at the square root of the number
- use a
break
to stop looping after knowing it's false - use the
for/else
, if no break has been found it goes into theelse
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.
这篇关于问质数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文