알고리즘

에라토스 테네스의 체

출근길 2018. 7. 18. 19:25

작은 소수부터 목표값까지 곱해주면서 제거



for (int i = 2; i <= N; i++) {
	for (int j = 1; i*j <= N; j++) {
		int ij = i*j;
		if (prime[ij] == 1) continue;
		if (j == 1) continue;
		prime[ij] = 1;
	}
}



for (int i = 2; i <= N; i++) {
	if(prime[i] == 0) continue;
	primeList.add(i);
	for (int j = 1; i*j <= N; j++) {
		if (prime[i*j] == 0) continue;
		if (j == 1) continue;
		prime[i*j] = 0;	
	}
}