[백준] 11653

당당·2023년 4월 21일
0

백준

목록 보기
14/179

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

📔문제

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


📝입력

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


📺출력

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


📝예제 입력 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

🔍출처

-문제의 오타를 찾은 사람: BaaaaaaaaaaarkingDog, Green55
-문제를 만든 사람: baekjoon
-잘못된 조건을 찾은 사람: wjdclgns12


🧮알고리즘 분류

  • 수학
  • 정수론
  • 소수 판정

📃소스 코드

import java.util.Scanner;

public class Code11653 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		
		int N=scanner.nextInt();
		int i=2;
		
		if(N!=1) { //N is not 1
			while(N>=i) {
				if(N%i==0) {
					System.out.println(i);
					N=N/i;
					i=2;
				}
				else {
					i++;
				}
			}
		}
		
	}

}

📰출력 결과


📂고찰

https://velog.io/@dangdang/프로그래머스-소인수분해

이 문제랑 비슷한 문제였다.
i를 2로 두고, Ni로 나누면서 점점 i의 크기를 키워나갔다.
2,3,5,7 순으로 나뉜다. 왜냐하면 4는 2가 이미 나눴을 것이고,
6도 이미 2와 3이 나누기 때문에 자동으로 소인수분해가 된다.


약수, 배수와 소수도 끝냈다!

profile
MySQL DBA 신입 지원

0개의 댓글