Dev.baelanche

[백준 3896] 소수 사이 수열 본문

Data Structure & Algorithm/PS - JAVA

[백준 3896] 소수 사이 수열

baelanche 2019. 7. 4. 20:51
반응형

 

에라토스테네스의 체 방법으로 소수 배열을 구해놓고

합성수 k 에 대해

 

k보다 크면서 가장 가까운 소수 - k보다 작으면서 가장 가까운 소수를 구한다.

 

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        boolean prime[] = new boolean[1299710];
        for(int i=2; i<1299710; i++)
            for(int j=i; i*j>2 && i*j<1299710; j++)
                prime[i*j] = true;
        
        int t = sc.nextInt();
        while(t-->0) {
            int k = sc.nextInt();
            if(prime[k]) {
                int s = k;
                int e = k;
                while(true) {
                    if(!prime[--s]) break;
                }
                while(true) {
                    if(!prime[++e]) break;
                }
                System.out.println(e-s);
            } else System.out.println(0);
        }
    }
}
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 9421] 소수상근수  (0) 2019.07.04
[백준 6588] 골드바흐의 추측  (0) 2019.07.04
[백준 2636] 치즈  (0) 2019.07.04
[백준 14430] 자원 캐기  (0) 2019.07.03
[백준 10867] 중복 빼고 정렬하기  (0) 2019.07.03
Comments