코드

 

#include <stdio.h>

int prime(int x)
{
	int p = 0;
	if(x%2 == 1 && x != 1)
	{
		for(int k = 1; 2*k+1 < x; k++)
		{
			if(x%(2*k+1)==0)
			p++;
		}
		if(p == 0)
		{
		return 1;
		}
        else
        {
            return 0;
        }
	}
	else if(x == 2)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}

int main(void)
{
	int a, x;
	int sum = 0;
	scanf("%d", &a);
	for(int i = 0; i < a; i++)
	{
		scanf("%d", &x);
		if(prime(x))
		{
			sum++;
		}
	}
	printf("%d", sum);
	return 0;
}

문제

 

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

 

입력

 

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

 

출력

 

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

 

예제 입력 1

 

4 1 3 5 7

 

예제 출력 1

 

3

 

문제 - https://www.acmicpc.net/problem/1978

Posted by hsoo3844