记得 sqrt(a*1.0)或者 sqrt(a)+1
不然开根开出来后会取整,导致wrong answer
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
#define maxn 1050
using namespace std;
int a[maxn];
bool is_Prime(int a){
int temp=2;
for(int i=2;i<=sqrt(a*1.0);i++)
{
if(a%i) continue;
else return 0;
}
return 1;
}
int main(){
int n,m=0,index;
int a1,b1,c1;
double count=0;
int t,cnt=0;
is_prim(1000000);
while(cin>>t){
cnt=0;
for(int i=0;i<t;i++){
cin>>a[i];
if(is_Prime(a[i])){
cnt++;
}
}
cout<<cnt<<endl;
}
return 0;
}
本文介绍了一种有效的素数判断方法,通过使用C++实现的is_Prime函数,能够准确地判断一个数是否为素数。代码中采用sqrt(a*1.0)避免了整数开方取整的问题,确保了判断的准确性。主函数通过读取一组数,统计并输出其中素数的数量。
377

被折叠的 条评论
为什么被折叠?



