https://www.acmicpc.net/problem/11653
11653번: 소인수분해
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
www.acmicpc.net
문제
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
출력
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.
풀이
- N을 2부터 나누기 시작합니다.
- N % i === 0 이 되면 그 수를 출력합니다.
- N % i === 0 이 되는 i값을 얻었습니다. 이번에는 N대신 N / i 로 소인수분해를 진행합니다.
- 이 과정을 N = 1일 때까지 반복합니다.
코드
let N = require("fs").readFileSync("dev/stdin").toString().trim();
소인수분해(Number(N));
function 소인수분해(num) {
if (num === 1) return;
let i = 2;
while (num % i !== 0) {
i++;
}
console.log(i);
소인수분해(num / i);
}
'Programing > 백준' 카테고리의 다른 글
[백준 / nodejs] 1085번 : 직사각형에서 탈출 (0) | 2023.12.07 |
---|---|
[백준 / nodejs] 27323번 : 직사각형 (2) | 2023.12.07 |
[백준 / nodejs] 2581번 : 소수 (1) | 2023.12.06 |
[백준 / nodejs] 1978번 : 소수 찾기 (0) | 2023.12.03 |
[백준 / nodejs] 9506번 : 약수들의 합 (0) | 2023.12.03 |
댓글