[1929] 백준 : 소인수분해(C)

지환·2022년 7월 6일
0

백준(C)

목록 보기
34/47
post-thumbnail

출처 | 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;
}
profile
아는만큼보인다.

0개의 댓글