반응형
12-03 08:06
Today
Total
«   2024/12   »
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
관리 메뉴

개발하는 고라니

[백준] 1644번 : 소수의 연속합 본문

Programming/백준

[백준] 1644번 : 소수의 연속합

조용한고라니 2021. 3. 23. 13:10
반응형
 

1644번: 소수의 연속합

첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000)

www.acmicpc.net


[소수 판정]

1부터 n까지 반복문을 돌며 소수인 것을 prime 배열에 저장했다. 그러면 prime에는 n이하의 소수만 저장되게 된다.

 

이제 이중 루프를 이용해서 prime을 돌며 연속 합이 n보다 같은 경우를 찾아 count를 증가시킨다.

# Code </>

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    static boolean isPrime(int x){
        if(x == 1) return false;

        for(int i=2; i<=Math.sqrt(x); i++)
            if(x % i == 0)
                return false;

        return true;
    }

    static int[] prime = new int[3000000];

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine()), idx = 0, cnt = 0;

        for(int i=1; i<=n; i++)
            if(isPrime(i))
                prime[idx++] = i;

        for(int i=0; i<idx; i++){
            int sum = 0;

            for(int j=i; j<idx; j++){
                sum += prime[j];

                if(sum >= n){
                    if(sum == n) cnt++;
                    break;
                }
            }
        }
        System.out.println(cnt);
    }
}
반응형
Comments