Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[백준] - 소수 (2581) (자바/Java) 본문

알고리즘문제/백준 문제(Java)

[백준] - 소수 (2581) (자바/Java)

luke-king 2024. 5. 9. 20:32

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

풀이.


 

import java.util.Scanner;

public class Main {
    public static boolean[] prime;
    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        int n = sc.nextInt();

        prime = new boolean[n + 1]; //배열 생성
        make_prime(n);

		//소수 합, 최소값
        int sum = 0;
        int min = Integer.MAX_VALUE;
        for (int i = m; i <= n; i++) {
            if (prime[i] == false) { //false = 소수
                sum += i;
                if (min == Integer.MAX_VALUE) { //최소값
                    min = i;
                }
            }
        }

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

    }

	// 에라토스테네스 체 알고리즘
    public static void make_prime(int num) {

        prime[0] = true;
        prime[1] = true;

        for (int i = 2; i < Math.sqrt(num); i++) {
            for (int j = i * i; j < prime.length; j = j + i) {
                prime[j] = true;
            }
        }

    }

}

 

이번문제는 " 소수 " 문제이다.

풀면서 느낀 점은 생각보다 어려웠다....?? 지난번 소수 구하기 문제는 괜찮게 풀었었는데 몇 가지만 추가되었다고 

난이도가 오른 느낌이였다... 그래서 구글링을 통해서 검색도 해보고 해서 풀었던 문제다...

하지만 풀이 설명하기에 아직 부족함이 많아 밑에 참고한 블로그 링크를 남겨두도록 하겠다...

 

<에라토스테네스 체 알고리즘>

https://st-lab.tistory.com/81

 

JAVA [자바] - 소수 구하는 알고리즘 및 구현

들어가기 전에 소수 [Prime Number] 소수의 정의는 1보다 큰 자연수 중 1 과 그 수 자기 자신만을 약수로 갖는 자연수를 의미한다는 점은 누구나 알고 있을 것이다. 즉, 소수의 약수는 2개만을 갖고,

st-lab.tistory.com