首页 > 代码库 > hdu 5150 Sum Sum Sum 水

hdu 5150 Sum Sum Sum 水

Sum Sum Sum

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)


Problem Description
We call a positive number X P-number if there is not a positive number that is less than X and the greatest common divisor of these two numbers is bigger than 1.
Now you are given a sequence of integers. You task is to calculate the sum of P-numbers of the sequence.
 

 

Input
There are several test cases. 
In each test case:
The first line contains a integer N(1N1000). The second line contains N integers. Each integer is between 1 and 1000.
 

 

Output
For each test case, output the sum of P-numbers of the sequence.
 

 

Sample Input
35 6 7110
 

 

Sample Output
120
 

 

Source
BestCoder Round #24
 
#include<bits/stdc++.h>using namespace std;#define ll long long#define pi (4*atan(1.0))#define eps 1e-14const int N=2e5+10,M=1e6+10,inf=1e9+10,mod=1e9+7;const ll INF=1e18+10;int prime(int n){    if(n<=1)    return 0;    if(n==2)    return 1;    if(n%2==0)    return 0;    int k, upperBound=n/2;    for(k=3; k<=upperBound; k+=2)    {        upperBound=n/k;        if(n%k==0)            return 0;    }    return 1;}int flag[1010];int main(){    int n,x;    for(int i=2;i<=1000;i++)    flag[i]=prime(i);    flag[1]=1;    while(~scanf("%d",&n))    {        int ans=0;        for(int i=1;i<=n;i++)        {            scanf("%d",&x);            if(flag[x])            ans+=x;        }        printf("%d\n",ans);    }    return 0;}

 

hdu 5150 Sum Sum Sum 水