백준(BaekJoon)

[BaekJoon/C] No.11653 : 소인수분해

ekdnjs510 2024. 7. 17. 00:47
728x90

https://www.acmicpc.net/problem/11653

No.11653 문제

 

문제해석

정수 N값을 반복문 통해 나누어떨어지는 값에 해당하는 반복문 변수 i를 출력합니다.

N의 값을 나눠진 몫으로 갱신한 뒤 i를 제일 작은 수부터 N까지 순회할 수 있도록 합니다.

 

소스코드 & 문제풀이

#include <stdio.h>

int main(void) {
	int N; 
	scanf("%d", &N); //정수 N을 입력받아 소인수분해하는 코드 작성

	//반복문 변수 i가 정수 N 까지 순회하며 나누어떨어지는 값을 찾기
	for (int i = 2; i <= N; i++) { //i를 1부터 시작해 나눠주는 것은 무의미 -> i=2
		if (N % i == 0) {
			printf("%d\n", i); //나누어 떨어지게 하는 i의 값 출력
			N = N / i; //N을 i로 나눠 나온 몫을 다시 N에 저장 -> 이유 : 다음 반복변수 i에 나눠지기 위함 
			i = 1; //i가 다시 2부터 시작하기 위한 코드
		}
	}
}

 

 

예제 입출력 결과

 

 

 

 

사진 출처 :https://case35.tistory.com/19

728x90