读书人

题目22: 素数求和有关问题

发布时间: 2013-03-27 11:22:41 作者: rapoo

题目22: 素数求和问题

描述
现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。
输入
第一行给出整数M(0<M<10)代表多少组测试数据
每组测试数据第一行给你N,代表该组测试数据的数量。
接下来的N个数为要测试的数据,每个数小于1000
输出
每组测试数据结果占一行,输出给出的测试数据的所有素数和
样例输入
351 2 3 4 5811 12 13 14 15 16 17 181021 22 23 24 25 26 27 28 29 30
样例输出
104152

/**********************************   日期:2013-3-25*   作者:SJF0115*   题号: 题目22: 素数求和问题*   来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=22*   结果:AC*   来源:南阳理工OJ*   总结:**********************************/#include<stdio.h>#include<string.h>#define MAXSIZE 1001int prime[MAXSIZE];//素数表void Prime(){memset(prime,0,sizeof(prime));for(int i = 2;i < MAXSIZE;i++){//非素数跳过if(prime[i]){continue;}else{for(int j = i*i;j < MAXSIZE;j += i){prime[j] = 1;}}}}int main(){int N,i,M,sum,x;//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);scanf("%d",&N);//素数表Prime();prime[1] = 1;prime[0] = 1;//N组测试数据while(N--){sum = 0;//M个数据scanf("%d",&M);for(i = 0;i < M;i++){scanf("%d",&x);//素数相加if(prime[x] == 0){sum += x;}}printf("%d\n",sum);}return 0;}


读书人网 >编程

热点推荐