-
[Dev-Ping9] 백준 11653번 - 소인수분해 (Java)코딩테스트/백준 2021. 11. 22. 18:32
# 문제설명
- 소수찾기 알고리즘을 구현해봤다면, 약수들의 중간값인 sqrt(n) 까지만 돌리면 된다는 것을 알고 있을 것이다.
- 그럼 구현만하면 끝
# 코드 구현
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br.readLine()); for(int i=2;i*i<=n; i++){ //n은 계속 유동적으로 바뀐다. 소수를 만나면 while문이 동작하지 않는다. while(n%i==0){ n/=i; bw.write(i+"\n"); } } if(n>1){ // 소수 bw.write(n+"\n"); } bw.flush(); bw.close(); br.close(); } }
728x90'코딩테스트 > 백준' 카테고리의 다른 글
[Dev-Ping9] 백준 2231번 - 분해합 (Java) (0) 2021.12.14 [Dev-Ping9] 백준 2447번 - 별 찍기 - 10 (Java) [DP] (0) 2021.11.24 [Dev-Ping9] 백준 9020번 - 골드바흐의 추측 (Java) (N을 2개의 수의 합으로 표현하기) (0) 2021.11.19 [Dev-Ping9] 백준 1978번 - 소수찾기 (Java) (0) 2021.11.17 [Dev-Ping9] 백준 1011번 - Fly me to the Alpha Centauri (Java) (0) 2021.11.17