描述
现在给你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 }