티스토리 뷰

https://www.acmicpc.net/problem/17103

 

17103번: 골드바흐 파티션

첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다.

www.acmicpc.net

const fs = require('fs');
const input = fs.readFileSync("./dev/stdin").toString().trim().split('\n').map(Number);
const nums = input.splice(1)

const answer = [];
let prime = new Array(1000001).fill(true);
prime[0] = false;
prime[1] = false;

const prime_sqrt = Math.floor(Math.sqrt(1000001));

for(let i = 2; i<prime_sqrt; i++){
  if(!prime[i]) continue;
  let isPrime = true;
  for(let j=2; j<i; j++){
    if(i%j==0){
      isPrime = false;
      break;
    }
  }
  if(isPrime){
    for(let k = i+i; k<=1000001; k+=i){
      prime[k]=false;
    }
  }
}

nums.forEach(v=>{
  let cnt = 0;
  for(let i = 2; i<=Math.floor(v/2); i++){
    if(prime[i]&&prime[v-i]){
      cnt++;
    }
  }
  answer.push(cnt)
})
console.log(answer.join('\n'))
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 29 30 31
글 보관함