如果你想要判断一个数字是否是质数,你该怎么办呢?

首先,我们要先知道质数的定义是什么:

质数是指,在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

那么我们很简单就能编辑出我们的最初版判断素数函数:【我们以欧拉第七题举例,输出第10001个素数】

很多数字标记了好几次,有不必要的时间开销。

15这个数字,我们在3里面标记了一次;5里面也标记了一次。

所以,我们还能继续简化:

也就是从2 * n一直到n的最小质因数 * n

从2开始,到2的最小质因数2。

也就是只标记一个2*2,等于4。

对于3,从2开始标记,标记到3的最小质因数3。

对于4,我们从2开始标记,标记到4的最小质因数2。

对于7,同理,标记14,21,35(但是我们只以前30个举例子,你可以理解为MAXN=30。后续将不再进行超出30的举例)

然后我们发现,所有合数只被标记了一次,我们就得到了下面的素数表:

上代码!