뚱땅뚱땅

[문제] 백준 2581번 소수 본문

알고리즘/백준

[문제] 백준 2581번 소수

양순이 2021. 1. 30. 18:11
728x90

* 출처: 백준 단계별로 풀어보기: 기본수학2

www.acmicpc.net/problem/2581

 

2581번: 소수

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

www.acmicpc.net

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

public class Main {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		int M = Integer.parseInt(in.readLine());
		int N = Integer.parseInt(in.readLine());
			
		int sum = 0, min = N;
		boolean flag = false;
		for(int i=M;i<=N;i++) {
			flag = isSosu(i);
			if(flag) {
				sum += i;
				if(min>i)
					min = i;
			}
		}
		if(sum == 0) {
			System.out.println(-1);
		}else {
			System.out.println(sum);
			System.out.println(min);
		}
	}
	static boolean isSosu(int n) {
		if(n==1) return false;
		if(n==2) return true;
		
		for(int i=2;i<n;i++) {
			if(n % i==0) return false;
		}
		return true;
	}
	
}

기본 문제

728x90
Comments