python中判断素数的几种方法

用python统计101~200中素数的个数,并且输出所有的素数。

分析:这是一道典型的循环题。首先,我们应该考虑101~200中得每一个都需要判断是否为素数;其次,每一个数在判断为素数时都需要判断能不能被1和它本身以外的数整除。所以这道题,我们在编写程序的时候要用嵌套循环。

  1. for循环编写程序:
    方法一:
    for i in range(101, 200):
        for j in range(2, i//2):
            if i % j == 0:
                break
            elif j == i // 2 - 1:
                print(i)
            else:
                continue
    

    注意事项:

    1. 在编写python程序的时候需要注意range(a,b) ,这是一个前闭后开区间,取a不取b
    2. 当我们在判断每一个数x是否是素数的时候,我们只需要计算这个数能不能被[2,x/2]之间的数整除即可
    3. 当我们判断一个数x不能被整除后,就用关键字break结束此次循环(注意区分break和continue)
    方法二:
    for i in range(101, 200):
        for j in range(2, i//2+1):
            if i % j == 0:
                break
        else:
            print(i)
    

    注意事项:

    1. 此方法中与else对应的if条件为空,也就是第二个for循环的内容相当于if的条件和内容
    方法三:
    for i in range(100, 200):
        s = 0
        for j in range(2, i):
            if i % j != 0:
                s += 1
                continue
            else:
                break
        if s == i - 2:
            print(i)
    

    注意事项:

    1. 对每一个数进行求余,如果不能够整除,则对s加一,对该数的判断结束后,进行判断:s == i-2(对除1和自身以外数进行判断)
    方法四:
    for i in range(101, 200):
        list01 = []
        for j in range(2, i):
            list01.append(str(i % j))
        if "0" not in list01:
            print(i)
    

    注意事项:

    1. 这种方法是在方法三的基础上改进的,对每个数求余的结果存入列表中,再判断0是否在列表中即可。
  • 55
    点赞
  • 310
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值