문제
문제해결
- 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);
}
}
'[알고리즘] > 백준' 카테고리의 다른 글
백준 11726 자바 - 2*n 타일링 (0) | 2021.07.20 |
---|---|
백준 1463 자바 - 1로 만들기 (0) | 2021.07.19 |
백준 2745 자바 - Base Conversion (0) | 2021.07.09 |
백준 2745 자바 - 진법 변환 (0) | 2021.07.08 |
백준 11005 자바 - 진법 변환2 (0) | 2021.07.07 |