第十二例

题目:判断101-200之间有多少个素数,并输出所有素数。(素数定义:除一和其自身外不被其他数整除的数。)

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

程序:

import math
from math import sqrt
list=[]
for n in range(101,201):
    list.append(n)#建立一个从101到200的数组
n=0
for num in range(101,201):
    for i in range(2,int(sqrt(num))+1):
        if num%i==0:
            list.remove(num)#把不是素数的数去掉
            break#跳出第二层循环,否则在把合数去掉后还在第二层循环,而list中已无该合数
for i in list:
    n=n+1
    print(i)
print(n)

结果:

101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
21

一开始没加break前老是报错,这是我逻辑的问题orz。然后发现了一个很严重的问题,我之前的程序好像都没写注释...心好痛,不想改。

posted @ 2017-09-11 21:53  汪了个叽  阅读(146)  评论(0)    收藏  举报