对于日常的一些问题,例如求出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