#!/usr/bin/python# -*- coding: UTF-8 -*-"""题目:判断101-200之间有多少个素数,并输出所有素数。程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。"""totalNum = 0leap = 1from math import sqrtfrom sys import stdoutfor m in range(101,201):k = int(sqrt(m+1))for i in range(2,k+1):#左开右闭,所以k+1if m % i == 0:leap = 0#不是素数的情况下leap=0,breakif leap == 1:print '%d' % mtotalNum += 1if totalNum % 5 == 0:print ''#5个一组输出,便于统计leap = 1#每次循环完了都要把leap恢复成1print 'The total is %d' % totalNum"""什么的方法感觉很臃肿,还有以下方法"""#用python的数学函数import mathdef isPrime(n):if n <= 1:return Falsefor i in range(2,int(math.sqrt(n)+1)):if n % i == 0:return Falsereturn True#单行程序扫描素数from math import sqrtN = 201a = [ p for p in range(101, N) if 0 not in [ p % d for d in range(2, int(sqrt(p))+1)] ]print a,'\n',u'素数总数有:%d个'.encode('gbk') % len(a)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。