加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-17 17:01:47 所属栏目:Python 来源:网络整理
导读:题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 程序源代码: # -*- coding: UTF-8 -*- import math l = [] for i in range(101,201): ? ?

题目:判断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


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读