티스토리 뷰

728x90
반응형

 

 

소인수분해 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB 61199 32744 25559 52.268%

문제

정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

출력

N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.

예제 입력 1 복사

72

예제 출력 1 복사

2
2
2
3
3

예제 입력 2 복사

3

예제 출력 2 복사

3

예제 입력 3 복사

6

예제 출력 3 복사

2
3

예제 입력 4 복사

2

예제 출력 4 복사

2

예제 입력 5 복사

9991

예제 출력 5 복사

97
103

 

 

 

#include <iostream>


using namespace std;

int main(void)
{

	int n,i=2;
	cin >> n;
	while (n > 1)
	{
		if (n == 1)
			break;
		if (n % i == 0)
		{
			printf("%d\n", i);
			n = n / i;
		}
		else
			i++;
	}
	return 0;


}

 

 

n=1일때, 탈출 조건이 있었어야 했는데, 이게 없으면 '시간 초과'가 뜬다.

 

 

1) 소인수분해는 2로 나눈다.

그리고 2로 나눌 수 없는 지점이 오면 3으로 나누기 시작한다.

이게 전부다.

728x90
반응형

'프로그래밍 > 백준 문제풀이' 카테고리의 다른 글

베르트랑 공존 4948 C/C++  (0) 2022.06.26
백준 1929 소수구하기 C/C++  (0) 2022.06.26
백준 2581 소수 C/C++  (0) 2022.06.25
백준 1978 소수 찾기 C/C++  (0) 2022.06.25
백준 10757 큰 수 A+B C/C++  (0) 2022.06.25
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함
반응형
250x250