bitCode

1093

소인수 분해

바른코드 0 제출 0 성공률 0.0%

출처 · cberi:1508

문제정보

1s 128MB

문제

소인수 분해는 1보다 큰 자연수를 소수들의 곱으로 나타내는 것을 말합니다. 예를 들어
122 * 2 * 3 으로 나타낼 수 있으며
1313 이 됩니다.
242 * 2 * 2 * 3 로 나타낼 수 있습니다.
자연수 n이 입력될 때 소인수 분해를 하는 프로그램을 작성해 봅시다.

입력형식

첫 줄에 자연수 n가 입력됩니다. (2n100)

출력형식

n을 소인수 분해한 결과를 작은 소수부터 한 칸씩 공백을 주고 출력합니다.

힌트

반복문은 2부터 n까지 출력해야 합니다. 이 과정을 살펴봅시다. 242로 나누면 12가 됩니다. 2를 출력하고 나면 이 문제는 다시 12에 대한 문제가 됩니다. 따라서 이 과정을 계속 반복하면 모든 소인수 분해를 할 수 있게 됩니다.
for(i=2;i<=n;i++){
    while(n%i==0){
        printf(“%d ”, i);
        n = n/i;
    }
}

와 같은 형태로 프로그래밍 할 수 있습니다. 이때 for문 안에 있는 nfor문 안에서 변경될 수 있으며 이것이 for문에 영향을 줄 수 있다는 것을 알아둡시다.

예시 1

입력예시

29

출력예시

29