Python 入门经典100实例:实例12 判断101-200之间有多少个素数

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

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

程序源代码:

# -*- coding: UTF-8 -*-

import math

l = []

for i in range(101,201):

    x = int(math.sqrt(i))

    #用i 分别除以int(math.sqrt(i))的值,查看i是否是素数

    for y in range(2,x+1):

        if i % y == 0 and i != y:

            break

    if i % y != 0:

        l.append(i)

print l

"""

#更加精简的方法

# -*- coding: UTF-8 -*-

import math

l = []

for i in range(101,x+1):

        #如果是非素数,退出运行

        if i % y == 0 and i != y:

            break

    #如果是素数,把值增加到L列表

    if i % y != 0:

        l.append(i)

print l

"""

print l

输出结果:


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

另外一种方法:


# -*- coding: UTF-8 -*-

h = 0

leap = 1

from math import sqrt

from sys import stdout

for m in range(101,201):

    k = int(sqrt(m + 1))

    for i in range(2,k + 1):

        if m % i == 0:

            leap = 0

            break

    if leap == 1:

        print '%-4d' % m

        h += 1

        if h % 10 == 0:

            print ''

    leap = 1

print 'The total is %d' % h

输出结果:


101 

103 

107 

109 

113 

127 

131 

137 

139 

149 

151 

157 

163 

167 

173 

179 

181 

191 

193 

197 

199 

The total is 21


相关文章

使用OpenCV实现视频去抖 整体步骤: 设置输入输出视频 寻找帧...
前言 对中文标题使用余弦相似度算法和编辑距离相似度分析进行...
前言 之前尝试写过一个爬虫,那时对网页请求还不够熟练,用的...
前言 本文使用Python实现了PCA算法,并使用ORL人脸数据集进行...
前言 使用opencv对图像进行操作,要求:(1)定位银行票据的...
天气预报API 功能 从中国天气网抓取数据返回1-7天的天气数据...