#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 result2
python学习笔记
最新推荐文章于 2025-02-28 02:06:28 发布