zoukankan      html  css  js  c++  java
  • python3练习100题——012

    今天继续,答案都通过py3测试。

    原题链接:http://www.runoob.com/python/python-exercise-example12.html

    题目:判断101-200之间有多少个素数,并输出所有素数。

    程序分析判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

    我的代码:

    def primes():
        li=[]            
        for m in range(101,200):
            state=1
            x=int(m**0.5)      #可以不用math.sqrt()比较省事~
            for i in range(2,x+1):
                if m%i==0:      #注意是余数为0的数,才不是素数,需要break
                    state=0
                    break
            if state==1:
                li.append(m)
        print("total:%d" %len(li))
        print(li)
                    

    思考:

    需要一个state变量,来判断状态。

    在每个循环开始,state=1,也就是默认一个数的状态是1,表示它是素数。

    只有在if语句判断成功的时候,state改为0,表示这个数不是素数了。if语句要循环判断很多次,可能其中只有1次满足了。设置state可以达到要求:只有一次满足就不是素数。

    接下来再经过一个if语句,可以把所有state=1的数加入列表中。

  • 相关阅读:
    第四次上课 PPT作业
    大道至简 读后感④
    第三次上课 PPT 课后测试
    大道至简 读后感③
    Java 02 课后作业
    Java 多个数字相加算法
    大道至简 读后感②
    wpf控件
    一个简单的prism mef例子
    c#弱事件(weak event)
  • 原文地址:https://www.cnblogs.com/drifter/p/9111022.html
Copyright © 2011-2022 走看看