-
[백준 2581] - [수학] - 소수알고리즘/수학 2018. 11. 27. 12:51
문제 링크 : https://www.acmicpc.net/problem/2581
이 문제는 소수이 먼저 확인하고 소수인 수를 합하고 최소값만 구하면 되는 문제이다.
입력받는 수의 최대값은 10000 이기 때문에 int 타입으로 처리가 가능하고 int 타입의 최대 수를 MIN 값으로 초기화 한 뒤에 풀면
소수일경우 최소값을 판단하는데 쉽게 판단 할 수 있다.
그리고 마지막에 결과를 반환할때 최소값의 값이 아직 int의 최대값이면 소수가 발견되지 않은거기 때문데 -1을 출력하면 된다.
소스
123456789101112131415161718192021222324252627282930313233343536373839import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int startNum = Integer.parseInt(br.readLine());int endNum = Integer.parseInt(br.readLine());int SUM = 0;int MIN = Integer.MAX_VALUE;for(int i = startNum; i <= endNum; i++) {if(isPrimeNumber(i)) {MIN = Math.min(MIN, i);SUM += i;}}if(MIN == Integer.MAX_VALUE) System.out.println(-1);else {System.out.println(SUM);System.out.println(MIN);}}public static boolean isPrimeNumber(int N) {if(N == 1) return false;for(int i=2; i < N; i++) {if(N % i == 0) return false;}return true;}}cs '알고리즘 > 수학' 카테고리의 다른 글
[백준 2609] - [수학 최소공배수 최대공약수] - 최대공약수와 최소공배수(JAVA) (0) 2018.12.03 [백준 9020]-[수학] - 골드바흐의 추측 (0) 2018.11.27 [백준 4948]-[수학] - 베르트랑 공준 (0) 2018.11.27 [백준 1929]-[수학]-[에라토스테네스의 체] - 소수 구하기 (java) (1) 2018.11.27 [백준-1978]-[수학-소수]-소수 찾기 (java) (0) 2018.11.27 댓글