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