본문 바로가기
알고리즘

에라토스 테네스의 체

by 출근길 2018. 7. 18.

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



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;	
	}
}

'알고리즘' 카테고리의 다른 글

벨만포드  (0) 2018.09.11
최장 증가 수열 (LIS : Longest Increasing Subsequence)  (0) 2018.07.19
최소 공통 조상(LCA : Lowest Common Ancestor)  (0) 2018.07.18
페르마의 소정리  (0) 2018.07.17
Union-Find  (0) 2018.07.17
위상정렬 (Topological Sort)  (0) 2018.07.17
SPFA (Shortest Path Faster Algorithm)  (0) 2018.07.17
인덱스 트리 (Indexed Tree)  (0) 2018.07.17