更新时间2019-05-22 13:08:03
#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时也是错的,所以参考的修改