[백준, BOJ 2581] 소수(java)
Problem Solving/BOJ

[백준, BOJ 2581] 소수(java)

728x90

출처-https://www.acmicpc.net/problem/2581

 

2581번: 소수

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

www.acmicpc.net


 

참고

소수를 찾는 방법은 'BOJ1978' 과 같은 방법을 사용했다.

 

import java.util.*;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner (System.in);
		int m = scan.nextInt();
		int n = scan.nextInt();
		int count = 0;
		int sum = 0;
		int min = 0;
		
		for (int i=m; i<=n; i++) {
			int j;
			for (j=2; j*j<=i; j++)
				if (i % j == 0)
					break;
			if ((j*j > i)&&(i != 1)) {
				sum += i;
				if (count == 0)
					min = i;
				count++;
			}
		}
		
		if (count == 0)
			System.out.println(-1);
		else {
			System.out.println(sum);
			System.out.println(min);
		}
			
	}

}
728x90