http://acm.nyist.net/JudgeOnline/problem.php?pid=22&rec=rec
我的代碼是:
#include
#include
int main()
{
int N,M,sum,i,j,a[10],flag;
double s;
scanf("%d",&M);
while(M--)
{
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
sum=0;
for(i=0;i<N;i++)
{
flag=1;//為1則是素數,0則不是素數
s=sqrt(a[i]);
for(j=2;j<=s;j++)
{
if(a[i]%j==0 || a[i]==1)
{
flag=0;
break;
}
}
if(flag==1)
sum+=a[i];
}
printf("%d\n",sum);
}
return 0;
}
如果我測試的是1時,它會把1加進sum,為什麼?怎麼改呢
你可以對 輸入為 1 的情況做特殊處理,包括 零 也注意一下。