判断一个质数我们往往直接暴力,可如果是在循环中要大量的去判断质数的话,直接暴力时间复杂度太高了。因此我们想到可以开一个bool数组来存储一个数是否为质数,而生成这个数组,我们就可以应用到筛法求质了。
筛法求质
思路很简单,就是先让所有的flag都为true,之后特判将flag[1] = false,接着从2枚举到n如果这个数还是true,就将所有除它自己本身以外所有的是它倍数的数赋值为false,这样判断i是否为质数看flag[i]的真假就行了。
代码实现并不难,就是一个简单的模拟。
(PS:NR是指n的上限)
# include <cstdio>
# include <iostream>
# include <cmath>
# include