素数求和问题

 

Time Limit:1000MS  Memory Limit:65536K
Total Submit:122 Accepted:74

 

原题链接

Description

现在给你N个数现在要求你写出一个程序,找出这N个数中的所有素数,并求和。

Input

第一行给出整数M(0<m<10)代表多少组测试数据
每组测试数据第一行给你N,代表该组测试数据的数量。 
接下来的N个数为要测试的数据,每个数小于1000 

Output

每组测试数据结果占一行,输出给出的测试数据的所有素数和 

Sample Input

 

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

 

Sample Output

 

10
41
52

 

Source

nyist

 

 

#include<iostream>
using namespace std;

int Prime[1000]={0};   //标记 
void Prime_list()
{
    Prime[0]=Prime[1]=1;
    for(int i=2;i<1000;i++)
    {
        for(int j=i*2;j<1000;j+=i)   //排除整数倍 
        {Prime[j]=1;}
    }
}


main()
{
    int M,N;
    int t;
    Prime_list();    //生成列表 
    cin>>M;
    
    for(int i=0;i<M;i++)
    {
        int Prime_sum=0;
        cin>>N;
        
        for(int j=0;j<N;j++)
        {
            cin>>t;
            if(Prime[t]==0)
            {Prime_sum+=t;}
        }
        
        cout<<Prime_sum<<endl;
    }
}
 

 




posted @ 2017-03-17 15:25  dearvee  阅读(145)  评论(0编辑  收藏  举报