Python 练习实例12
题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
程序源代码:
实例(Python 2.0+)
#!/usr/bin/python
# -*- 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
至尊宝
521***41@qq.com
使用集合解法:
至尊宝
521***41@qq.com
Eric
382***115@qq.com
参考解法:
Eric
382***115@qq.com
swordzjc
hfu***9@163.com
Python3 测试实例:
swordzjc
hfu***9@163.com
奈琉
115***4268@qq.com
判断素数的方式我选用了排除法,采用切片复制原有列表,逐一排除非素数,则剩余的列表中元素皆为素数。
奈琉
115***4268@qq.com
大愚
923***317@qq.com
参考方法:
大愚
923***317@qq.com
Kunz
sun***gup@163.com
参考方法:
Kunz
sun***gup@163.com
Think-dfrent
iwa***aoiy@live.com
python3 测试实例:去除除2以外的偶数 提高效率
Think-dfrent
iwa***aoiy@live.com
AnnieHe
380***802@qq.com
参考方法:
AnnieHe
380***802@qq.com
周周
zhi***zhou@hotmail.com
Python3 测试:
检查 y 能否被 2 到 y**0.5 之间的整数整除,如果能则 break,如果不能,将该数加入列表并 break。
周周
zhi***zhou@hotmail.com
Echo
csz***13@163.com
我写了两种方法,一种是迭代器:
运行结果:
另一种是生成器一行搞定:
Echo
csz***13@163.com