본문 바로가기

개발👩‍💻/알고리즘

백준 js 11653: 소인수분해

728x90

문제

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

입력

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

출력

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

예제 입력 1

72

예제 출력 1

2

2

2

3

3

 

풀이

작은수부터 오름차순으로 루프문을 돌며 루프문에 해당하는 현재값으로 나누어 떨어질 때까지 나눈다.

 

전체코드

 

const fs = require("fs");
let input = +(process.platform === "linux"
? fs.readFileSync("/dev/stdin").toString().trim()
: `9991`);
let result = [];
for (let i = 2; i <= input; i++) {
while (input % i === 0) {
input = input / i;
result.push(i);
}
}
console.log(result.join("\n"));
view raw 11653.js hosted with ❤ by GitHub
반응형