umilove98의 블로그

백준 1837 Java 자바 본문

algorithm/백준

백준 1837 Java 자바

umilove98 2021. 8. 9. 15:06
반응형

k보다 작은 소수를 모두 구해 그 각각의 소수들로 p를 나누어보고 나누어 떨어지는 경우가 있다면 BAD 와 해당 소수 출력, 없다면 GOOD출력

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.StringTokenizer;
 
public class Q1837 {
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        BigInteger p = new BigInteger(st.nextToken());
        int k = Integer.parseInt(st.nextToken());
        
        
        boolean[] primes = new boolean[k + 1];
        primes[1= true;
              
        for(int i = 2 ; i < k ; i++){
            if(primes[i]) continue// 소수가 아닌(true) 수는 넘어가기
            BigInteger now = new BigInteger(Integer.toString(i));
            if(p.mod(now).compareTo(BigInteger.ZERO) == 0) {    // p를 now로 나눈 나머지가 0이면 
                System.out.println("BAD " + now);
                return;
            }
            for(int j = i + i ; j <= k ; j += i){ // i를 제외한 i의 배수 모두 체크하기
                primes[j] = true;
            }
        }
        System.out.println("GOOD");
 
    }
 
}
 
cs
반응형

'algorithm > 백준' 카테고리의 다른 글

백준 1864 Java 자바  (0) 2021.08.10
백준 1436 Java 자바  (0) 2021.08.09
백준 1427 Java 자바  (0) 2021.08.07
백준 1598 Java 자바  (0) 2021.08.06
백준 1417 Java 자바  (0) 2021.08.05