[Java] 백준 문제 풀이 - 1978번

이진석·2022년 10월 24일
0

백준 문제 풀이!!

목록 보기
4/13
post-thumbnail

20221024

문제

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

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


풀이

import java.util.Scanner;
 
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int num = sc.nextInt();
		
		int count = 0;
		
		for(int i = 0; i < num; i++) {
			
			// 소수인경우 true, 아닌경우 false   
			boolean isPrime = true;
			
			int num2 = sc.nextInt();
			
			if(num2 == 1) {	// 1 인경우 다음 반복문으로
				continue;
			}
            
			for(int j = 2; j <= Math.sqrt(num2); j++) {
				if(num2 % j == 0) {
					isPrime = false;	// 소수가 아니므로 false 로 바꿔줌
					break;
				}
			}
			if(isPrime) {	// 소수인경우 count 값 1 증가
				count++;
			}
		}
		System.out.println(count);
	}
}

  • 제곱근을 활용해서 하는 경우도 있다고 하지만, 나는 소수가 아닌 경우와 소수인 경우를 구분해서 문제를 풀어보았다.
  • Buffer를 이용해서도 풀 수 있지만, 개인적으로는 Scanner가 더 편한듯 해서 Scanner를 적극 활용중이다ㅎㅎ
profile
혼자서 코딩 공부하는 전공생 초보 백엔드 개발자 / https://github.com/leejinseok0614

0개의 댓글