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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |