sm 기술 블로그

64. 4948(베르트랑 공준) 본문

문제/백준_자바스크립트

64. 4948(베르트랑 공준)

sm_hope 2022. 6. 4. 22:35
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

 

[자바스크립트]고급 배열 함수(계속 추가)

array.slice(start, end) let A = [1,2,3]; console.log(A.slice(0,1)); 출력결과 [ 1 ] slice는 배열에서 원하는 부분만 자르는 함수로 start ~ end-1 값을 뽑는다. n==="a")" data-nodeid="5">array.filter(n=>n..

smhope.tistory.com

 

'문제 > 백준_자바스크립트' 카테고리의 다른 글

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