首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-03-27 
题目22: 素数求和问题描述现在给你N个数(0N1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求

题目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;}


热点排行