티스토리 뷰

알고리즘

백준 #2581 java 2023.01.24

chaewonni 2023. 1. 24. 23:01

전에 포스팅했던 소수찾기 문제에서 조금 더 업그레이드된 소수문제!

 

소수를 찾는 것에서 소수의 합과 최솟값을 찾는 것이 더해졌다.

 

package boj_basic.step8;

import java.util.Scanner;

public class Q2581 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int M = sc.nextInt();
		int N = sc.nextInt();
		int num = 0;
		int[] arr = new int[10001];
		int sum = 0;
		
		for(num = M; num<=N; num++) {
			if(num == 1)
				arr[num]=1;
			else if (num >=2) {
				for(int i = 2; i<num; i++) {
					if(num % i == 0)
						arr[num]=1;
				}
			}
			
		}
		
		int min = 10000;
		
		for(int i = M; i<=N; i++) {
			if(arr[i]==0)
				sum += i;
		}
		
		if(sum == 0)
			System.out.println("-1");
		else {
			System.out.println(sum);
			for(int i = M; i<=N; i++) {
				if(arr[i]==0) {
					if(min > i)
						min = i;
				}
			}
			System.out.println(min);
		}
		
		

	}

}

소수가 아닌것들을 배열에 1로 넣고, 입력한 범위 안에서 소수인 것들(배열에서 0인것들)의 합을 구해주고, min을 이용하여 값들을 비교하여 최솟값을 찾아주면 된다. sum이 0일때와 0이 아닐때를 if else문으로 작성하여 입력한 범위 내에 소수가 없으면 -1을 출력해주도록 했다.

'알고리즘' 카테고리의 다른 글

백준 #1929 java 2023.01.25  (3) 2023.01.25
백준 #11653 java 2023.01.24  (1) 2023.01.24
백준 #1978 java 2022.01.23  (0) 2023.01.23
백준 #2563 java 2022.01.22  (2) 2023.01.22
백준 #2566 java 2023.01.22  (5) 2023.01.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
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
글 보관함