Algorithm/Baekjoon(Node.js)

[JavaSrcipt] Baekjoon - 11653 : 소인수분해

비망노트 2021. 9. 30. 10:57

문제

정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

출력

N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.

예제입력 예제출력
72 2
2
2
3
3

3 3
6 2
3
2 2
9991 97
103

 

⭕ 풀이

let n=Number(require('fs').readFileSync('/dev/stdin').toString());

for(let i=2;i<=n;){      
    if(n%i===0){
        console.log(i);
        n /= i;
    }else{
        i++;
    }
}

입력값을 i로 나눈나머지가 0일경우

해당 i값을 출력하고

입력값 n을 i로 나눈다.

 

입력값을 평소처럼 const로 선언하면 n /= i; 구간에서 에러가 난다.

 

처음에는 result배열을 선언해 console.log(i)가 아닌

result.push(i) 로하고 마지막에

'\n'을 join해서 출력했는데 조금 생각해보니 그럴필요가 없는것같아

위의 코드로 간결하게 적어주었다.

 

 

 

-출처

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