[BaekJoon] 백준 11653: 소인수분해
·
알고리즘/백준
문제: 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력: 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력: N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 풀이: 소인수분해 문제를 해결하기 위해서는 우선 소수를 판정하는 방법에 대해 알아야한다. 어떤 수 $x$가 소수일 조건은 약수로 1과 자기 자신만을 가져야 한다. 따라서 $x$를 $[2, x - 1]$ 범위 내의 수로 나누었을때, 나누어 떨어지는 수가 없으면 그 수는 소수이다. 이를 코드로 표현하면 다음과 같다. bool IsPrime(int x) { for (int i = 2; i < x; ++i) { if (x % i == 0) return fa..