素数求和问题。为什么输出结果为0啊。。帮我修改一下程序吧。谢谢了
#include<iostream>
#include<cmath>
using namespace std;
int n,m,k,a[100];
int main()
{
int sum;
cin>>m;
while(m--)
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
k=sqrt(a[i]);
for(int j=2;j<=k;j++)
{
if(a[i]%j==0)
break;
if(j>=k+1)
{
sum+=a[i];
}
}
}
cout<<sum<<endl;
}
return 0;
}
你的 if(j>=k+1)要在j循环外面判断的,这样你的j就要定义在前面了
另外,你的判断素数当a[i]<2时也是错的,所以参考的修改
热门标签: