골드바흐의 추측 - javascript

DonQ·2022년 5월 6일
0

CodingTest

목록 보기
27/33
post-thumbnail

문제 (출처)

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

나의 접근

  • 사실 어떻게 풀어야 하나 감이 잡히지 않았다... 그러다 졸려서 졸고 있었는데...

  • 갑자기 눈이 딱 떠지면서 반으로 나눠보자! 그리고 두 수가 모두 소수라면 출력하자! 아니라면 +1, -1을 하여 맞춰가자라는 생각이 들었다!!!

풀이

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split('\n');

const isPrime = (n) => {
    if(n == 1){
        return false;
    }else{
        for(let i = 2; i <= Math.sqrt(n); i++){
            if(n % i == 0){
                return false;
            }
        }
    }
    return true;
}

for(let i = 1; i <= +input[0]; i++){
    let a = +input[i] / 2;
    let b = +input[i] / 2;
    while(true){
       if(isPrime(a) && isPrime(b)){
           console.log (a, b);
           break;
       }else{
           a--;
           b++;
       }
    }
}

오늘의 배운점 및 교훈

  • 사실 소수 문제의 연장선이라 엄청 어렵지는 않았지만... 뭔가 갑자기 졸다가 푸는 방법이 생각이 나서 신기방기했다!!!

profile
꾸준히 쌓아가는 코딩 Study

0개의 댓글

관련 채용 정보