Baekjoonアルゴリズム | 2581番問題: 素数

出典

https://www.acmicpc.net/problem/2581

問題

Baekjoon Online Judgeの2581番問題、素数を解きます。

入力

正確な入力形式と制約は元の問題文に従います。

出力

問題で求められる答えを出力します。

サンプル入力 1

60 100

サンプル出力 1

620 61

サンプル入力 2

64 65

サンプル出力 2

-1

アルゴリズム分類

  • 数学
  • 整数論
  • 素数判定

解説

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

public class Main {
    public static void main(String[] args) throws IOException {
        try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
            int m = Integer.parseInt(br.readLine());
            int n = Integer.parseInt(br.readLine());

            int sum = 0;
            int min = Integer.MAX_VALUE;
            for (int i = m; i <= n; i++) {
                if (isPrime(i)) {
                    sum += i;
                    if (min > i) {
                        min = i;
                    }
                }
            }
            if (sum == 0) {
                System.out.println(-1);
            } else {
                System.out.println(sum);
                System.out.println(min);
            }
        }
    }

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

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