Spicy Tuna Sushi
본문 바로가기
문제를 풀자

[백준 #1978] 소수 찾기(C++)

by 말린malin 2022. 5. 30.

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

 

1978번: 소수 찾기

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

www.acmicpc.net

#include <iostream>
#include <vector>

using namespace std;
int main()
{
	int n;
	cin >> n;
	vector <int> v(n);
	for (int i = 0; i < n; i++)
		cin >> v[i];
	
	int cnt = 0;
	for (int i = 0; i < n; i++)
	{
		int flag = 1;
		int N = v[i];
		if (N == 1)
			flag = 0;
		else
		{
			for (int j = 2; j < N; j++)
			{
				if (N % j == 0)
				{
					flag = 0;
					break;
				}
			}
		}
		if (flag)
			cnt++;
	}
	cout << cnt;
	
}

소수가 아닐 경우 flag=0으로 설정하였다.

N이 1일 경우 flag=0이며,

그렇지 않으면 N이 2부터 N-1까지의 수로 나누어떨어지는지 확인한다.

하나라도 나누어떨어진다면 flag=0이다.

 

처음에 설정해둔 flag=1로 살아남았을 경우에 cnt++를 하였다.

 

다른 분들의 코드 리뷰

소수 : 약수가 1과 자신만 있는 자연수.

즉, 약수가 두 개다.

약수가 두 개일 경우 cnt++를 해주었다.

댓글