[JAVA] 백준 2581번 : 소수

조예빈·2024년 6월 29일
0

Coding Test

목록 보기
22/146
post-custom-banner

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

정답 코드

package bronze2;

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

public class num2581 {
    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 minPrime = 0;

        for (int i = M; i <= N; i++) { //M이상 N이하의 자연수
            boolean isPrime = true;
            for (int j = 2; j <= (int) Math.sqrt(i); j++) {
                if (i % j == 0) {
                    isPrime = false;
                    break;
                }
            }
            if (i > 1 && isPrime) { //소수이면
                sum = sum + i;
                if (minPrime == 0) {
                    minPrime = i;
                }
            }
        }
        if (sum == 0) {
            System.out.println(-1);
        } else {
            System.out.println(sum);
            System.out.println(minPrime);
        }
        br.close();
    }
}

1은 소수가 아니라는 사실과 입력이 음수일 수도 있다는 사실을 놓쳐서 두 번이나 틀렸다ㅠㅠ 앞으로는 더 주의깊게 보는 습관을 길러야겠다.

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러
post-custom-banner

0개의 댓글