문제정보
1s 128MB
문제
소인수 분해는 1보다 큰 자연수를 소수들의 곱으로 나타내는 것을 말합니다. 예를 들어
12는 2 * 2 * 3 으로 나타낼 수 있으며
13은 13 이 됩니다.
24는 2 * 2 * 2 * 3 로 나타낼 수 있습니다.
자연수 n이 입력될 때 소인수 분해를 하는 프로그램을 작성해 봅시다.
12는 2 * 2 * 3 으로 나타낼 수 있으며
13은 13 이 됩니다.
24는 2 * 2 * 2 * 3 로 나타낼 수 있습니다.
자연수 n이 입력될 때 소인수 분해를 하는 프로그램을 작성해 봅시다.
입력형식
첫 줄에 자연수 n가 입력됩니다. (2≦n≦100)
출력형식
n을 소인수 분해한 결과를 작은 소수부터 한 칸씩 공백을 주고 출력합니다.
힌트
반복문은 2부터 n까지 출력해야 합니다. 이 과정을 살펴봅시다. 24를 2로 나누면 12가 됩니다. 2를 출력하고 나면 이 문제는 다시 12에 대한 문제가 됩니다. 따라서 이 과정을 계속 반복하면 모든 소인수 분해를 할 수 있게 됩니다.
와 같은 형태로 프로그래밍 할 수 있습니다. 이때 for문 안에 있는 n이 for문 안에서 변경될 수 있으며 이것이 for문에 영향을 줄 수 있다는 것을 알아둡시다.
for(i=2;i<=n;i++){
while(n%i==0){
printf(“%d ”, i);
n = n/i;
}
}
와 같은 형태로 프로그래밍 할 수 있습니다. 이때 for문 안에 있는 n이 for문 안에서 변경될 수 있으며 이것이 for문에 영향을 줄 수 있다는 것을 알아둡시다.
예시 1
입력예시
29
출력예시
29