본문 바로가기
알고리즘/백준

알고리즘(C++) / 백준 1978 : 소수 찾기

by clean_h 2021. 2. 19.
728x90

1978

www.acmicpc.net/problem/1978

 

1978번: 소수 찾기

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

www.acmicpc.net

문제

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

 

입력

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

 

출력

주어진 수들 중 소수의 개수를 출력한다.

 

코드

//1978 소수 찾기
#include <iostream>
using namespace std;

int main() {
	int N;
	cin >> N;
	int num = 0;
	int a;
	int check;

	for (int i = 0; i < N; i++) {
		check = 0;
		cin >> a;
		for (int j = 2; j < a; j++) {
			if (a % j == 0) {
				check = 1;
				break;
			}
		}
		if (check == 0 && a != 1) {
			num++;
		}
	}
	
	cout << num << endl;

	return 0;
}

 

 

결과

 

설명

입력받을 수의 개수를 N으로 입력 받고, 소수의 개수를 num에 저장한다.

소수는 1과 자기 자신만으로 나눠떨어지는 수이다. 그래서 1부터 자기 자신까지 나눠보면서 나머지가 0이면 소수가 아닌걸로 판단한다. 

예외로 1은 소수가 아니므로 예외처리해준다.

728x90

댓글