문제
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
출력
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.
package codingTest;
import java.util.Scanner;
public class Algorithm4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
double sqNum = Math.sqrt(num);
int k = 2;
while (k <= sqNum && num != 1) {
if (num % k == 0) {
System.out.println(k);
num /= k;
} else {
k++;
}
}
if(num !=1)
System.out.println(num);
}
}
'JAVA > JAVA Algorithm' 카테고리의 다른 글
[백준] 2798번 블랙잭 - 자바 (0) | 2022.08.21 |
---|---|
[백준] 14425번 문자열 집합 (0) | 2022.08.18 |
[백준]10872번 팩토리얼 (꼬리 재귀 이용함) (0) | 2022.08.17 |
최대공약수와 최소공배수 구하는 알고리즘 만들기 (0) | 2022.08.14 |
[백준]18108번 불기연도를 서기년도로 바꾸기 (0) | 2022.08.08 |