问质数 [英] Asking Prime number

查看:61
本文介绍了问质数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试着看看数字 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==Trueif 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 the 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.

这篇关于问质数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆