본문 바로가기
Algorithm/Baekjoon

[백준 알고리즘][자바] 1978번 : 소수 찾기

by hyunipad 2021. 8. 2.
반응형

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

 

1978번: 소수 찾기

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

www.acmicpc.net

안녕하세요. 이번 포스팅은 1978번 : 소수 찾기입니다.

먼저 소수의 정의는 1과 자기 자신만을 약수로 가지는 자연수입니다.

약수를 판단하는 방법은 나머지가 0인지 아닌지를 체크합니다.

체크한 후 약수 갯수가 2개이면 그 수는 소수입니다.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int T = Integer.parseInt(br.readLine()); // 테스트 케이스의 개수
		String numArr[] = br.readLine().split(" "); // 입력 받은 숫자들
		int result = 0;
		
		for(int i = 0 ; i < T ; i++) {
			int num = Integer.parseInt(numArr[i]);
			int count = 0;
			if(num == 1) { // 1은 소수가 아니다.
				continue;
			}else {
				for(int i2 = 1 ; i2 <= num ; i2++) { // 1부터 시작하여 자기자신까지 약수 갯수를 카운트
					if(num % i2 == 0) {
						count++;
					}
				}
			}
			
			if(count == 2) { 약수 갯수가 2개이면 소수이다.
				result++;
			}
		}
		
		bw.write(String.valueOf(result));

		br.close();
		bw.flush();
		bw.close();
	}
}

반응형

댓글