python输出所有素数_python 判断101-200之间有多少个素数,并输出所有素数。

程序分析:一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数。

一、参考解法:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

from math import sqrt

h=0

for m in range(101,201):

leap=1

k = int(sqrt(m)) #返回数字的平方根

for i in range(2,k+1):#K+1,表示从2循环到K(包含k)

if m % i==0:

leap=0

break

if leap==1:

print('%-4d'%m)

h+=1

if h % 10==0:

print('')

print('The total is %d'%h)

二、参考解法:

使用函数解法

from math import sqrt

h=0

def su(n):

global h #声明全局变量

for i in range (2,int(sqrt(n)+1)):

if n%i==0:

return

print('%d'%n)

h +=1

if h%10==0:

print('')

return

for j in range(101,201):

su(j)

print('The total is %d'%h)

三、参考解法:

使用集合解法

l=[ ]

for i in range(101,200):

for j in range(2,i-1):

if i % j==0:

break

else: #for......else 中,else语句会在 for 不通过 break 跳出而中断的情况下执行。

l.append(i)

print(l)

print('总数为:%d'%len(l))

四、参考解法:

使用列表切片解法

import math

p=range(101,201)

aList=list(p)

for i in range(101,201):

for j in range(2,int(math.sqrt(i)+1)):

if i % j==0:

aList.remove(i)

break

print(aList)

print('总数为:%d'%len(aList))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值