Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_2581] 소수 본문

Study/Problem Solving

[BOJ_2581] 소수

monitor 2023. 9. 19. 23:58

단순히 소수를 구하고 이에 따라서 해당 범위의 최솟값과 소수들의 합을 구하는 문제이다.

 

소수 판별법이 잘 기억이 나지 않아 제곱근까지의 숫자들을 모두 검증하는식으로 풀었다.

 

package Math;
import java.util.*;
import java.io.*;
public class BOJ_2581 {
    static int min = Integer.MAX_VALUE;
    static int ans = 0;
    public static void main(String[] args) throws Exception{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer tk = new StringTokenizer(in.readLine()," ");
        int M = Integer.parseInt(tk.nextToken());
        int N = Integer.parseInt(in.readLine());
        
        find(M,N);

        if(ans == 0){
            System.out.println(-1);
        }else {
            System.out.println(ans + "\n" + min);
        }
    }

    private static void find(int m, int n) {
        for(int i = m; i <= n; i++){
            boolean checker = check(i);
            if(i == 2 || i == 3){
                min = Math.min(min,i);
            }

            if(checker){
                continue;
            } else {
                min = Math.min(min,i);
                ans += i;
            }
        }
    }

    private static boolean check(int n) {
        if(n == 1){
            return true;
        }

        for(int i = 2; i*i <= n; i++){
            if(n%i == 0){
                return true;
            }
        }
        return false;
    }
}

 

 

2581번: 소수

M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다.  단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.

www.acmicpc.net

 

'Study > Problem Solving' 카테고리의 다른 글

[BOJ_11653] 소인수 분해  (0) 2023.09.30
[BOJ_5618] 공약수  (0) 2023.09.20
[BOJ_17615] 볼 모으기  (0) 2023.09.10
[BOJ_12919] A와 B 2  (0) 2023.09.07
[BOJ_14940] 쉬운 최단거리  (0) 2023.09.05