素数求和问题

描述

现在给你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 <string.h>
 3 
 4 int main(){
 5     int flag[1001];
 6     int i;
 7     int j;
 8     int T;
 9     int n;
10     int number;
11     int sum;
12     
13     memset(flag,0,sizeof(int)*1001);
14     flag[0]=1;
15     flag[1]=1;
16     
17     for(i=2;i*i<1001;i++){
18         if(flag[i]==0){
19             for(j=i*i;j<1001;j+=i)
20                 flag[j]=1;
21         }
22     }
23     
24     scanf("%d",&T);
25     
26     while(T--){
27         scanf("%d",&n);
28         
29         sum=0;
30         for(i=0;i<n;i++){
31             scanf("%d",&number);
32             
33             if(flag[number]==0)
34                 sum+=number;
35         }
36         
37         printf("%d
",sum);
38     }
39     
40     return 0;
41 }
原文地址:https://www.cnblogs.com/zqxLonely/p/4095822.html