题目描述:
求所给n个数中的所有素数的和。
输入:每组输入有两行,第一行一个数n,,当输入数据n为0时第二行有n个数(所有的数都小于100),结束。
输出:输出一个数代表所有素数的和。如果所给的n个数没有素数输出-1。
样例输入:
5
1 2 3 4 5
5
1 4 6 8 10
样例输出:
10
-1
代码
#include<stdio.h>
#include<math.h>
int prime(int m)
{
int i,k;
if(m == 1)
return 0;
k = (int)sqrt(m);
for(i = 2; i <= k; i++)
{
if(m % i == 0)
return 0;
}
return 1;
}
int main(void)
{
int i,n,k;
int a[1000];
while(scanf("%d",&n)&&n)
{
k=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(prime(a[i])==1)
k+=a[i];
}
if(k==0)
printf("-1\n");
else
printf("%d\n",k);
}
return 0;
}