본문 바로가기
IT_tech/알고리즘

백준) 2581 소수 - JAVA

by 신드로 2020. 6. 19.

https://www.acmicpc.net/problem/2581

 

2581번: 소수

M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다.  단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.

www.acmicpc.net

입력값이 1일때 처리를 안해서 계속 실패가 떴네요;;ㅎㅎ

여기저기 까다로운 포인트들이 많은 문제였습니다.

package solution;

import java.util.Scanner;

public class Bakjun_2581 {
	public static void main(String[] args) {
	
		   Scanner sc = new Scanner(System.in);
	
		 
		    boolean tf = true;
		    int min =10000;
		    int sum = 0;
		    
		    int f = sc.nextInt();
		    int S  = sc.nextInt();
		
		   
		       for(int j=f;j<=S;j++) {
		    	   

		    	   if(j==1) {
		    		   tf=false;
		    	   }
		    	   
	     	   for(int k=2;k<j;k++) {
		    	if(j%k==0){
		    		tf=false;
		    	           }
	     	   }	    
		    	
		    	if(tf==true) {		    		
		    		sum+=j;
		    	 if(min>j) {
		    		min=j;
		    	          }
		    	};
		    	tf=true;
		    	   }
		    	
		       
		    	if (sum == 0) {
					System.out.println(-1);
				}
		    	else {
		    	System.out.println(sum);
		    	System.out.println(min);
		    	}
		 
		   
		    sc.close();
		    		    
		   }//메인메소드종료 
	
	}//클래스종료