Python求某一个整数范围内的素数

求某一个数字范围内的素数,是我们写程序过程中经常遇见的一个问题,今天向大家介绍一种素数判断的简单方法。

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。

因此,判断一个数是不是素数可以有两种思路:

第一种思路:判断一个整数N是否是素数,只需用 N 去除 2 ~ N-1 之间的每一个整数,如果都不能被整除,那么N 就是一个素数。

第二种思路:判断方法。N 不必被 2 ~ N-1 之间的每一个整数去除,只需被 2 ~ \sqrt{N}之间的每一个整数去除就可以了。如果 m 不能被 2 ~\sqrt{N}间任一整数整除,N 必定是素数。例如判别 19是是否为素数,只需使 19 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 19是素数。
    原因:因为如果 N 能被 2 ~ N-1 之间任一整数整除,其二个因子必定有一个小于或等于\sqrt{N},另一个大于或等于\sqrt{N}。例如 36 能被 2、3、4、6、9、12、18 整除,36=2*18,2 小于\sqrt{36},8 大于\sqrt{36},36=3*12,3小于\sqrt{36},12大于\sqrt{36},36=4*9,4小于\sqrt{36}​​​​​​​,9大于\sqrt{36}​​​​​​​,36=6*6,都等于\sqrt{36}​​​​​​​,因此只需判定在 2~\sqrt{36}​​​​​​​之间有无因子即可。

按照以上思路,可以用以下程序求出2-500之间的素数:

for i in range(2,501):
    flag=1
    for j in range(2,int(i**0.5+1)):
        if i%j==0:
            flag=0
        else:
            continue
    if flag==1:
        print(i,end="   ")

其中flag为标志变量。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值