728x90
예외는 M이 1인 경우입니다.
1 1
-> 결과 :
-1
1 3
-> 결과 :
5
2
sosu라는 변수를 통해 일단 sosu라고 가정한 후
sosu가 아닌 조건 즉, 숫자가 1이라 count가 1인 경우와
count가 2일 때, 해당 값까지 for문이 미치지 못한 경우를
구분하여
소수일 때만 sum값에 더해주면 됩니다.
최소값을 편하게 구하기 위해 큰 값부터 소수판별을 시작해서 작은 값으로
내려갑니다.
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 32 33 34 35 36 37 38 39 40 41 42 | import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int M = sc.nextInt(); int N = sc.nextInt(); int sum=0,min=-1; for(int i=N;i>=M;i--) { int count=0; int sosu=1; for(int j=1;j<=i;j++) { if(i%j==0) count++; if(count==2 && j<i) { sosu=0; break; } } if(count==1) sosu=0; if(sosu==1) { sum+=i; min=i; } } if(min!=-1) { System.out.println(sum); System.out.println(min); } else System.out.println(min); } } |
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준][Java] 1929번 소수 구하기 (0) | 2018.04.30 |
---|---|
[백준][Java] 2751번 수 정렬하기 2 (0) | 2018.04.29 |
[백준][Java] 6064번 카잉 달력 (0) | 2018.04.29 |
[백준][Java] 1978번 소수 찾기 (0) | 2018.04.28 |
[백준][Java] 1011번 Fly me to the Alpha Centauri (0) | 2018.04.26 |