题目要求:
题目要求给定一个数字n,求在区间[2, n]范围内素数的个数。解答:
本题还是比较简单的。主要利用了素数最基本的一个性质,即:素数只能被1和其本身整除。因此,如果能为某个数字找到一个除1和它本身以外的因数,那么它一定不是素数。
因此,开设一个大小为n的标记数组is_prime, 开始时其值均为true,然后从2开始扫描,首先2,是一个素数,因此is_prime[2] = true, 并且所有2的倍数一定不是素数,那么就将所有2的倍数对应的is_prime数组的元素置为false,即:is_prime[2*k] = false。