22.素数求和问题
- 描述
- 现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。
- 输入
- 第一行给出整数M(0<M<10)代表多少组测试数据
每组测试数据第一行给你N,代表该组测试数据的数量。
接下来的N个数为要测试的数据,每个数小于1000 - 输出
- 每组测试数据结果占一行,输出给出的测试数据的所有素数和
- 样例输入
-
3 5 1 2 3 4 5 8 11 12 13 14 15 16 17 18 10 21 22 23 24 25 26 27 28 29 30
- 样例输出
-
10 41 52
1 #include<stdio.h> 2 #include<math.h> 3 int main( ) { 4 int m, n, i, j, a[1000], flag = 0; 5 long s; 6 scanf("%d", &m); 7 while(m--) { 8 s=0; 9 scanf("%d", &n); 10 for(i = 0;i < n;i ++) 11 scanf("%d", &a[i]); 12 for(i = 0;i < n;i ++) { 13 if(a[i] == 1) continue; 14 flag = 0; 15 for(j = 2; j <= sqrt(a[i]);j ++) { 16 if(a[i]%j==0) { 17 flag = 1; 18 break; 19 } 20 } 21 if(flag == 0) 22 s += a[i]; 23 } 24 printf("%d\n", s); 25 } 26 return 0; 27 }