NYOJ 22 素数求和问题

来源:互联网 发布:jquery ui.min.js 1.8 编辑:程序博客网 时间:2024/05/22 03:53

描述
现在给你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 <cstring>#include <cmath>using namespace std;int main(){int n, m,i,j,l;int dp[1001];memset(dp, 0, sizeof(dp));dp[2] = 1;for (i = 2; i <= 1000; i++){if (i % 2)dp[i] = 1;}for (j = 3; j <= sqrt(1000); j += 2){if (dp[j]){for (l = j * 2; l <= 1000; l += j)dp[l] = 0;}}/*for (i = 0; i <= 1000; i++){if (dp[i])cout << i << endl;}*/cin >> n;while (n--){cin >> m;l = 0;for (i = 0; i < m; i++){cin >> j;if (dp[j])l += j;}cout << l << endl;}return 0;}


1 0