素数求和问题

来源:互联网 发布:js 3d 720度全景展示 编辑:程序博客网 时间:2024/06/11 14:21
描述
现在给你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
#include<iostream>#include<math.h>using namespace std;int main(){int m, n, i, j, a[1000], flag = 0;long s;cin >> m;while (m--){s = 0;cin >> n;for (i = 0; i < n; i++)cin >> a[i];for (i = 0; i < n; i++){if (a[i] == 1)continue;flag = 0;for (j = 2; j <= sqrt(a[i]); j++){if (a[i] % j == 0){flag = 1;break;}    }if (flag == 0)s += a[i];}cout << s << endl;}return 0;}