본문 바로가기

코딩테스트/백준

[백준-자바] 1978번 소수 찾기 / 2022.01.30

 

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

 

1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

 

 

import java.util.Scanner;

public class Main {
   // 소수이면 true 리턴, 아니면 false를 리턴하는 메소드
   public static boolean isPrime(int num) {
      if(num==1) // 1이면 소수가 아님
         return false;
      if(num==2) // 2면 소수임
         return true;
      for(int i=2; i<num; i++) { // 자기자신보다 작은 수로 나누었을때 나머지가 0이라면
         if(num%i==0)           // 소수가 아니므로 false 리턴
            return false;
      }
      return true;     // 자기자신보다 작은 수로 나누었을 때 나누어지는 수가 없다면
                       // true 리턴
   }

   public static void main(String[] args) throws Exception {
       Scanner sc = new Scanner(System.in);
       int N = sc.nextInt();
       int sosu = 0; // 소수의 개수를 세는 변수
       
       for(int i=0; i<N; i++) {
          int num = sc.nextInt();
          if(isPrime(num) == true) // 소수라면
             sosu++;              // sosu + 1
       }
       
       System.out.println(sosu);
    }
}