ACM_素数筛选

/*
*素数筛法,判断小于MAXN的数是不是素数。
*notprime是一张表,为false表示是素数,true表示不是素数 
*/
const int MAXN = 1000010;
bool notprime[MAXN];	//值为false表示素数,值为true表示非素数

void init() {
	memset(notprime, false, sizeof(notprime));
	notprime[0] = notprime[1] = true;
	
	for (int i = 2; i<MAXN; i++) {
		if (!notprime[i]) {
			if (i *i >MAX) 
				continue;
			for (int j = j*i; j<MAXN; j+= i)
				notprime[j] = true; 
		}
	}
} 

你可能感兴趣的:(素数筛选)