[알고리즘]/백준
백준 11653 자바 - 소인수분해
broship
2021. 7. 10. 16:10
문제
문제해결
- 2부터 하나씩 나누는 방법
import java.util.Scanner;
public class B11653 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 2; i <= n; i++) {
while (n%i == 0){
System.out.println(i);
n /= i;
}
}
}
}
- 하지만 반복문을 Math.sqrt(n) 까지만 돌고 마지막에 1이 아닐 경우 n을 출력하는 방법을 사용해도 된다
import java.util.Scanner;
public class B11653 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 2; i <= Math.sqrt(n); i++) {
while (n%i == 0){
System.out.println(i);
n /= i;
}
}
if (n != 1)
System.out.println(n);
}
}