본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 2581 소수

by 까망 하르방 2021. 2. 21.
반응형

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

 Input 

60

100

 

 Output 

620

61

m(=60)과 n(=100) 사이의 소수

: 61, 67, 71, 73, 79, 83, 89, 9

(소수가 없는 경우 '-1' 출력)

m과 n 사이에 소수가 존재 유무에 따라 소수들의 합과 최솟값 도출.

소수(Prime Number) 찾기


import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
         
        int m = Integer.parseInt(sc.next());
        int n = Integer.parseInt(sc.next());
         
        int minValue = -1;
        int sumValue = 0;
         
        for(int i=m; i<=n; i++) {
            // 소수인 경우
            if(isPrimeNumber(i)) {
                if(minValue == -1) {
                    minValue = i;
                }
                sumValue = sumValue + i;
            }
        }
         
        // 소수가 적어도 1개 존재했다면.
        if(minValue != -1) {
            System.out.println(sumValue);   
        }
        System.out.println(minValue);
    }
 
    private static boolean isPrimeNumber(int x) {
        if (x == 1) return false;
         
        // 1과 자기자신 외에 나누어지지 않는다.
        for(int i=2; i<x; i++) {
            if(x % i == 0) return false;
        }
        return true;
    }
}

 

반응형

'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 1747 소수&팰린드롬  (0) 2021.02.21
[BOJ] 백준 1259 팰린드롬수  (0) 2021.02.21
[BOJ] 백준 1978 소수 찾기  (0) 2021.02.20
[BOJ] 백준 10211 Maximum Subarray  (0) 2021.02.20
[BOJ] 백준 1914 하노이 탑  (0) 2021.02.20

댓글