주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
주어진 수들 중 소수의 개수를 출력한다.
Input:
4
1 3 5 7
Output:
3
#define _CRT_SERCURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
bool IsPrime(int num)
{
if (num < 2) return false;
int a = (int)sqrt(num);
for (int j = 2; j <= a; j++) if (num % j == 0) return false;
return true;
}
int main()
{
int numSize;
cin >> numSize;
int* num = new int[numSize];
int count = 0;
for (int i = 0; i < numSize; i++) cin >> num[i];
for (int i = 0; i < numSize; i++) if (IsPrime(num[i])) count++;
printf("%d", count);
delete[]num;
return 0;
}
Runtime 0 ms / Memory 2032 KB