728x90
반응형
자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최소값을 찾는 프로그램을 작성하시오.
예를 들어 M=60, N=100이 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최소값은 61이 된다.
풀이
이중 반복문으로 소수를 구한 다음
순회하여 모든 소수를 더하고
sort 내장 함수로 정렬하여 가장 처음 값을 출력한다.
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 | import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; /** * Created by homr on 2017. 6. 11.. */ public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); ArrayList<Integer> arr = new ArrayList<Integer>(); int M = sc.nextInt(); int N = sc.nextInt(); int sum = 0; for(int i=M; i<=N; i++){ for(int j=1; j<i; j++){ if(j!=1&&i%j==0){ break; }else if(j==i-1){ arr.add(i); } } } if(arr.size()==0){ System.out.println(-1); return; } Collections.sort(arr); for(int i =0; i<arr.size(); i++){ sum += arr.get(i); } System.out.println(sum); System.out.println(arr.get(0)); } } | cs |
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
[Backjoon] 3058번 문제 - 짝수를 찾아라 (0) | 2017.06.14 |
---|---|
[Backjoon] 11727번 문제 - 2xn 타일링 2 (0) | 2017.06.12 |
[알고리즘] 동적 계획법(Dynamic Programming) - 6 (0) | 2017.06.10 |
[알고리즘] 동적 계획법(Dynamic Programming) - 5 (0) | 2017.06.09 |
[알고리즘] 동적 계획법(Dynamic Programming) - 4 (0) | 2017.06.09 |
댓글