출처 | https://www.acmicpc.net/problem/11653
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
#include <stdio.h>
//개념 [소인수 분해]
//1. 나누어 떨어지는 소수로만 나누어준다.
//2. 몫이 소수가 될 때 까지 나눕니다.
//3. 마지막 소수가 나올 때까지 나눈다.
//
//[구현]
// 소수로 for문 구현하고 사용자로부터 N를 입력받는다.
// 바깥 for문 통해서 while문을 구성한다.[N%i == 0] printf 하는 식으로 N /= i가 되야한다.
// 마지막 소수가 나올 때 까지 나눈다.
int main()
{
int a, b, m;
scanf("%d", &m);
for (int i = 2; i <= m; i++)
{
while (m % i == 0)
{
printf("%d\n", i);
m /= i;
}
}
return 0;
}