공부하는 블로그

Baekjoon | Q.1978 - 소수 찾기 본문

알고리즘 공부

Baekjoon | Q.1978 - 소수 찾기

치킨닮은닭 2019. 12. 28. 22:58
 

1978번: 소수 찾기

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

www.acmicpc.net

 입력 받은 수가 소수인지 아닌지 판별하는 문제이다. 소수란 1보다 큰 정수 중 1과 자기자신으로만 나누어 떨어지는 수이다. (1은 소수가 아님)

 

import java.util.Scanner;

public class Main {
	
	static boolean isPrime(int num) {
		if(num == 1) return false;
		
		int w = 2;
		while(w < num) {
			if(num % w == 0) {
				return false;
			}
			w++;
		}
		return true;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int tc = sc.nextInt();
		int count = 0;
		
		for (int i = 0; i < tc; i++) {
			int num = sc.nextInt();
			if(isPrime(num)) count++;			
		}
		
		System.out.println(count);
	}

}

 

 isPrime() 함수는 소수인지 아닌지 판별하는 함수이다. 제일 먼저 1일 경우 false를 반환한다. 그 이외의 숫자들은 2부터 입력받은 수 사이의 모든 수를 차례대로 나눈 나머지가 0인 경우가 하나라도 있다면 그 수는 소수가 아닌게 되므로 false를 반환한다. 하나도 없을 경우는 반복문을 전부 끝마치고 빠져나와 true를 반환한다.

Comments