-
에라토스테네스의 체Algorithm 2021. 1. 23. 15:53728x90
- 소수를 판별하는 가장 빠른 알고리즘
- 대량의 소수를 한꺼번에 판별할 때 적합
방법
- 배열을 생성하여 초기화
- 소수의 배수에 해당하는 수를 모두 지움(자기 자신은 지우지 않고 이미 지워진 수는 건너뜀)
- 남아있는 수를 모두 출력
코드
function getPrimeNumber(n) { let result = new Array(); let checkArray = new Array(n + 1).fill(false); for(let i = 2; i * i <= n; i++){ if(!checkArray[i]) { for(let j = i * i; j <= n; j += i) { checkArray[j] = true; } } } for(let i = 2; i <= n; i++) { if(!checkArray[i]) { result.push(i); } } return result; }
728x90'Algorithm' 카테고리의 다른 글
[leetcode] 1. Two Sum (Typescript) (0) 2021.02.12 [백준] 11653번 소인수분해 (Node.js) (0) 2021.01.23 [백준] 10757 큰 수 A + B - NodeJS (0) 2021.01.17 [백준] 10870번 피보나치 수 (0) 2020.12.12 [백준] 10872번 팩토리얼 (Node.js) (0) 2020.12.12