서비스 기획자 기록

[백준] 1978번 : 소수 찾기 - Java 본문

백준

[백준] 1978번 : 소수 찾기 - Java

주니5947 2025. 1. 10. 14:52

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


  • 문제


 

  • 풀이

- 입력받은 수 보다 1작은 수까지 반복해서 나눠서 나누어 떨어지지 않으면 카운팅

import java.util.Scanner;
 
public class Main {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		int count = 0;
		
		for (int i = 0; i < N; i++) {
			int num = sc.nextInt();
			
			if (num == 2)
				count++;
			else
				for (int j = 2; j < num; j++) {
					if (j == num - 1)
						count++;
					if (num % j == 0)
						break;
				}
		}
		
		System.out.println(count);
		
		sc.close();
	}
}

 

for문으로 2부터 입력받은 수 보다 1작은 수까지 반복해서 끝까지 나눠떨어지지 않으면 카운팅한다.

나눠떨어지면 약수가 존재 하는 것이므로 break문으로 반복을 종료한다.

단, 2를 입력받으면 for문에서 카운팅이 되지 못하므로 따로 처리해준다.