Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 교집합
- parseInt()
- setDate
- filter()
- Eventlitener
- isNaN()
- useState()
- 3진수
- reat if문
- getday()
- charAt()
- 소수점 올림내림
- 항해99솔직후기 #항해99장점 #항해99단점 #부트캠프추천
- Math.floor()
- substring()
- useEffect()
- slice()
- 차집합
- toUpperCase()
- indexOf()
- Math.sqrt()
- repeat()
- React
- jsx반복문
- map()
- includes()
- useRef()
- Number()
- new Date()
- sort()
Archives
- Today
- Total
개발자로 전향중
[백준] 베르트랑 공준 본문
n이 n보다 작은 수의 배수에 해당하지 않으면 n은 소수
에라토스테네스의 체
: 소수를 판별하는 알고리즘. 소수들을 대량으로 빠르고 정확하게 구하는 방법
과정
1. 2 ~ 120까지의 모든 숫자들을 나열합니다.
2. 2는 소수이므로 오른쪽에 2를 쓰고 2의 배수들을 모두 지웁니다. (빨간색)
3. 남아있는 숫자에서 3은 소수이므로 오른쪽에 3을 쓰고 3의 배수들을 모두 지웁니다. (초록색)
4. 남아있는 숫자에서 5는 소수이므로 오른쪽에 5를 쓰고 5의 배수들을 모두 지웁니다. (파란색)
5. 남아있는 숫자에서 7는 소수이므로 오른쪽에 7을 쓰고 7의 배수들을 모두 지웁니다. (노란색)
6. 위의 과정을 반복합니다.
7. 11 ×11 은 121 로 범위 2 ~ 120을 넘기 때문에 반복을 멈추고 남은 수(소수)들을 출력합니다.
📍 출처 : https://coding-factory.tistory.com/600\
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n").map(v => +v);
// 에라토스테네스의 체로 소수 골라내기
const max = Math.max(...input) * 2; //Math.max() : 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자 반환
let prime = [];
for (let i = 0; i <= max; i++) {
prime.push(true);
}
// 소수가 될 수 없는 0,1은 false로 미리 지정
prime[0] = false;
prime[1] = false;
for (let i = 2; i * i <= max; i++) {
if (prime[i])
for (let j = i * i; j <= max; j += i) // 제곱이 범위(2n)를 넘지 않는 범위에서
prime[j] = false;
}
// n ~ 2n의 소수들의 수를 각 출력
input.forEach(v => {
const start = v;
const end = v * 2;
if (v > 0) {
let cnt = 0; // 소수의 수를 담을 변수
for (let i = start + 1; i <= end; i++) { // start+1은 자릿수가 0이 아닌 1부터 시작하게끔
if (prime[i] == true) {
cnt++;
}
}
console.log(cnt)
}
})
📍 Ref.
https://junkim.netlify.app/posts/programmers0807
https://doqtqu.tistory.com/140
'자료구조&알고리즘' 카테고리의 다른 글
[백준] 소수구하기 (0) | 2022.03.04 |
---|---|
[백준] ACM 호텔 (0) | 2022.03.03 |
(백준) 설탕배달 (0) | 2022.03.01 |
프로그래머스 Lv.2 124 나라의 숫자 (0) | 2022.01.28 |
[백준] 사분면 고르기 (0) | 2022.01.22 |