반응형
문제
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
해설
1은 표현을 하지 않아도 되기 때문에 2부터 시작하며 해당 수를 나누면서 진행하면 소인수를 얻을 수 있다.
나누어서 0이 되는 숫자를 찾게 된다면, 나누어서 소인수를 저장하고 다시 2부터 나누기를 시도하며 진행한다.
작은 숫자에서부터 차례로 검사하며 배열에 넣기 때문에 소수를 오름차순으로 정렬을 하라는 요구조건은 따로 처리를 하지 않아도 만족한다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString().split(' ');
var num = parseInt(input[0]);
var i = 2;
var primes = []
while (true) {
if (num % i === 0) {
num = num / i
primes.push(i)
i = 1;
}
i++;
if (i > num) {
break;
}
}
console.log(primes.join("\n"));
|
cs |
반응형
'끄적 > Algorithm' 카테고리의 다른 글
[알고리즘] 백준 - 1003 피보나치 함수 node js 구현 (0) | 2021.08.20 |
---|---|
[알고리즘] 백준 -1085 직사각형에서 탈출 node.js 구현 (0) | 2021.08.17 |
[알고리즘] 백준 -1463 1로 만들기 파이썬 구현 (0) | 2019.02.12 |
[알고리즘] 백준 - 1149 RGB 거리 파이썬 구현 (0) | 2019.02.01 |
[알고리즘] 백준 - 11718 그대로 출력하기 파이썬 구현 (0) | 2019.01.23 |