#coding:utf-8
# -*- coding: utf-8 -*-应该像八股文一样在每个脚本的头部声明,这是个忠告 ——为了解决中文兼容问题,/
同时你应该选择支持 Unicode 编码的编辑器环境,保证在运行脚本中的每个汉字都是使用 utf-8 编码过的。
'''cdays-5-exercise-3.py 求0~100之间的所有素数
@note: for循环, 列表类型
@see: math模块使用可参考http://docs.python.org/lib/module-math.html
'''
from math import sqrt
N = 100
#基本的方法,N在外边定义,可方便以后扩展。
result1 = []
#用集合的方式输出
for num in range(2, N):
f = True
for snu in range(2, int(sqrt(num))+1):
#素数取余算法只需要测试除本身开平方,sqrt算出的为浮点类型,需要通过int强制转换,加1保证全面覆盖。
if num % snu == 0:
f = False
#在for循环除的过程中已剔除1和本身,即有一个能够除尽,就可以调出循环了,减少循环次数。
break
if f:
result1.append(num)
print result1
#更好的方法
result2 = [ p for p in range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p))+1)] ]
print result2python学习笔记
最新推荐文章于 2025-07-09 00:15:15 发布
2万+

被折叠的 条评论
为什么被折叠?



