const fs = require('fs')
const input = Number(fs.readFileSync('/dev/stdin').toString().trim())
const solution = num => {
let i = 2
let result = []
while(num >= i ){
if(num % i === 0){
result.push(i)
num /= i
}else{
i++
}
}
return result.join('\n')
}
console.log(solution(input))
소인수 i
는 2부터 시작한다
입력값 num
이 i
로 나누어 떨어지면 소인수이므로 배열 result
에 추가하고 num
에 num
을 i
로 나눈 몫을 재할당한다.
num
이 i
로 나누어 떨어지지 않으면 소인수가 아니므로 +1 증가시킨다.
num
은 소인수i
보다 크거나 작아야 하므로 반복문의 조건으로 삼는다.
프로그래머스에 한 번쯤 풀어본듯한 문제라 별로 어렵지 않았다.