반응형
출처: 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 사이에 소수가 존재 유무에 따라 소수들의 합과 최솟값 도출.
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 |
댓글