Computer Science (CS)/알고리즘

[백준/Java] 2581번 소수

eune7 2023. 5. 21. 15:35
728x90
반응형

 

 

 

 

 

 

문제

 

 

 

정답 풀이

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 IOException {
        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 = N+1;

        for(int i = M; i <= N; i++){
            int check = 0;

            for(int j = 1; j<=i; j++){
                if(i%j == 0){
                    check++;
                }
            }
            if(check == 2){
                sum+=i;
                if(min > i) min = i;
            }
        }

        if(sum == 0) System.out.print(-1);
        else{
            System.out.println(sum);
            System.out.println(min);
        }

        br.close();
    }
}
  • 메모리 14568KB
  • 시간 300ms

직전에 풀었던 소수 찾기 문제와 동일한 접근 방법을 사용했습니다.

약수의 갯수가 2개면 소수로 판단하여 소수의 합(sum)과 소수 중 최솟값(min)을 계산해줬어요.

 

sum이 0이라는 것은 소수가 없었다는 것이니 -1을 출력해주고

그렇지 않을 경우 sum과 min을 출력해주면 끝입니다.

 

 

 

 

 

728x90
반응형