https://www.acmicpc.net/problem/11653
11653번: 소인수분해
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
www.acmicpc.net
문제
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
출력
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.
핵심
1.scanner를 통해 소인수분해를 할 정수 N을 입력받는다.
2. 소인수분해를 할때에 나누는 최소수인 i를 2로 선언 및 초기화한다.
3. N이 1일때는 무한반복문을 종료한다.
4. N이 i로 나누어떨어지면 i를 출력하고 N을 i로 나누어 값을 재할당한다.
5. 나누어 떨어지지 않으면 i를 1증가시키고 다시 반복문을 돌린다.
6. N이 1이 될때까지 무한반복
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int i = 2;
while(true){
if(N==1){
break;
}
if(N % i == 0){
System.out.println(i);
N = N / i;
}else{
i++;
}
}
}
}
'Algorithm' 카테고리의 다른 글
| [백준 알고리즘 JAVA] 15829번 Hashing (0) | 2024.04.14 |
|---|---|
| [백준 알고리즘 JAVA] 4153번 직각삼각형 (1) | 2024.04.14 |
| [백준 알고리즘 JAVA] 2581번 소수 (0) | 2024.04.14 |
| [백준 알고리즘 JAVA] 1978번 소수 찾기 (1) | 2024.04.14 |
| [백준 알고리즘 JAVA] 9506번 약수들의 합 (1) | 2024.04.14 |