Luogu 3383(线性筛)

传送门

模板题。好奇NOIP会不会考用线性筛求一个化简过程中遇到的积性函数

#include
#include
#include
#include
using namespace std;
const int N=1e7+4;
int prime[N/10],tot=0;
bool vis[N];
inline void linear_shaker(int n) {
	vis[1]=true;
	for (register int i=2;i<=n;++i) {
		if (!vis[i]) prime[++tot]=i;
		for (int j=1;j<=tot&&i*prime[j]<=n;++j) {
			vis[i*prime[j]]=true;
			if (i%prime[j]==0) break;
		}
	}
}
int n,q;
int main() {
	scanf("%d%d",&n,&q);
	linear_shaker(n);
	for (register int i=0;i


你可能感兴趣的:(OI-模板,OI-数学)