[백준] java 1978

Sundae·2023년 7월 19일
0

백준

목록 보기
8/63
post-custom-banner

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


문제

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

접근 과정

소수는 고등학교 이후로 처음 본 단어다... 소수가 무엇이었는지 기억이 잘 나지 않았다.
https://ko.wikipedia.org/wiki/%EC%86%8C%EC%88%98_(%EC%88%98%EB%A1%A0) < 참고

소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수라고 한다.
1의 자리 소수로는 2 , 3 , 5 , 7 등등이 있다.
문제의 목표는 소수가 몇 개인지 찾는 것이다. 소수를 찾는 방법을 알아보았다.

라고한다. 반복문의 조건식과 범위를 잘 설정해보자.


import java.io.*;
import java.util.StringTokenizer;


public class Main{
   public static void main(String[] args) throws IOException { 
      BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
      int N = Integer.parseInt(bf.readLine());
      StringTokenizer st = new StringTokenizer(bf.readLine(), " ");
       
      int count = 0;       
      main : for(int i = 0 ; i < N; i++) {    	  
    	  	int S = Integer.parseInt(st.nextToken());
    	  	if( S == 1 ) 
    	  		continue main;   	  	   	  		
    	  	if(S == 2 || S == 3 || S == 5 || S == 7) {
    	  		count++;
    	  		continue main;
    	  	}
    	  	for( int j = 2; j < S; j++) {
    	  		if( S % j == 0 )
    	  			continue main;
    	  	}
    	  	count++;   	  			
      }
      System.out.println(count);
   }  
}     
     

j는 2부터 S까지이다. S를 1씩 증가하는 j로 나누었을 때 0으로 나누어 떨어지지 않으면 count가 1증가하게 만들었다.


느낀점 / 배운점

문제 단계가 올라갈 수록 수학적인 문제도 점점 섞이는 것 같다. 긴장이 된다.
이렇게 문제에서 수학적 개념이나 공식을 학습해보았는데, 다른 문제에서도 배운 것을 활용할 수 있으면 좋겠다.

profile
성장 기록 / 글에 오류가 있다면 댓글 부탁드립니다.
post-custom-banner

2개의 댓글

comment-user-thumbnail
2023년 7월 19일

감사합니다, 이 글이 많은 도움이 되었습니다.

1개의 답글