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


소수 구하는 다른 방법인 에라토스테네스 방법도 공부해야 할듯

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;

public class Main {

	static int N, M;

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		N = Integer.parseInt(br.readLine());
		M = Integer.parseInt(br.readLine());

		ArrayList<Integer> al = new ArrayList<Integer>();
		int sum = 0;

		for (int i = N; i <= M; i++) {
			boolean flag = true;

			if(i == 1)
				continue;
			
			for (int j = 2; j <= Math.sqrt(i); j++) {

				if (i % j == 0) {
					flag = false;
					break;
				}
			}

			if (flag) {
				
				sum += i;
				al.add(i);
			}
		}
		
		Collections.sort(al);
		
		if(al.isEmpty()) {
			System.out.println("-1");
		}
		else {
			System.out.println(sum);
			System.out.println(al.remove(0));
		}

	}

}

+ Recent posts