sm 기술 블로그
64. 4948(베르트랑 공준) 본문
let input = require("fs").readFileSync(0).toString().split("\n");
let index = -1;
let arr_prime = [];
let result = "";
// 1. 소수 저장
for (let i = 0; i <= 123456 * 2; i++) {
let is_prime = true;
for (let j = 2; j <= Math.sqrt(i); j++) {
if (i % j === 0) {
is_prime = false;
break;
}
}
if (is_prime) arr_prime.push(1); // 소수
else if (!is_prime || i === 0 || i === 1) arr_prime.push(0); // 소수가 아님
}
// 2. 개수 세기
while (true) {
let N = parseInt(input[++index]);
if (N === 0) {
break;
}
result +=
arr_prime.slice(N + 1, 2 * N + 1).filter((n) => n === 1).length + "\n";
}
console.log(result);
큰틀을 보면 이렇다.
1. 소수를 저장한다.
2. 소수를 센다.
>> 핵심 개념
https://smhope.tistory.com/179
'문제 > 백준_자바스크립트' 카테고리의 다른 글
66. 10872 (팩토리얼) (0) | 2022.06.06 |
---|---|
65. 9020(골드바흐의 추측) (0) | 2022.06.05 |
63. 1929(소수 구하기) (0) | 2022.06.04 |
62. 11653(소인수분해) (0) | 2022.06.04 |
61. 소수(2581) (0) | 2022.06.03 |
Comments