题面
素数是一个自然数,它恰好有两个不同的自然数除数:1 和它本身。 例如,前四个质数是:2、3、5 和 7。
编写一个程序,读取 N 个整数的列表并打印该列表中素数的个数。
输入
第一行包含一个整数 N,即列表中元素的数量。
N 个数字在以下几行中给出。
1≤N≤10000
2≤列表中的元素≤108
输出
打印给定列表中素数的数量。
题目分析:质数的判断还是比较简单的,我们只要简单的进行循环判断就行,而且由于时间关系,我们只需要循环到就能够判断了,同时虽然题目说N2,但是还是有为1的数据,所以我们还是要判断一些比较特殊的值,比如0,1,2.
AC代码如下:
#include<iostream>
#include<cmath>
using namespace std;
int zhishu(int a)
{
int b;
b=sqrt(a);
if(a==0||a==1) return false;
if(a==2) return true;
for(int i=2;i<=b;i++)
if(a%i==0) return false;
return true;
}
int main()
{
int n;
int a;
int count=0;
cin>>n;
while(n--)
{
cin>>a;
if(zhishu(a))
{
count++;
}
}
cout<<count<<endl;
//system("pause");
return 0;
}