python解决n以内的质数问题

对于日常的一些问题,例如求出n以内的质数问题,这都是经常会遇到的一些问题,可能会在面试的过程当中都会被问到的问题,所以针对这个比较基础的问题进行解答。

问题是需要找出n以内的所有质数(不包括n这个数),质数的定义是在大于1的自然数中,除了1和它本身以外,不再有其他因数的数即为质数。例如:

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

在了解到什么事质数之后,如果想要从1-n数之间找到所有的质数,需要对1-n的所有整数进行判断,判断其是否能够整除除了1和其数本身之外的其余整数,如果是可以整除的,那则可以说明不是整数,否则就是存在可以整除的数。

假设要判断整数m是不是质数,那么就要看整数m是否能否整除2、3、...、m-1中的任意一个整数,如果可以整除,则说明m不是质数,并且立刻终止对m的判断,无须继续往后做除法。所以整个过程首先是已知2是最小的质数,我们在定义的结果列表中,先将2放入到列表中,判断范围就变成了3-n-1,利用循环来进行遍历,然后对遍历的数逐个除以2到该数-1的证书,一旦发现了可以整除的某个整数就终止判断,确认该数就不是质数。使用python来实现的代码如下:

class solution():
    def func(self,n):
        re=[2]
        i=3
        for i in range(3,n):
            j=2
            for j in range(2,i):
                if i%j==0:
                    break
                if i%j!=0:
                    re.append(i)
        return re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值