HDU-5150

来源:互联网 发布:灵云网络电视机顶盒 编辑:程序博客网 时间:2024/06/06 02:35

//直接暴力打表飘过,值得注意的就是1也是P-number.

AC代码:

#include<stdio.h>#include<string.h>#define max 1005int isprime[max];int prime[max];int vis[max];void Init(){    int i,j,cnt=0;    memset(vis,0,sizeof(vis));    memset(isprime,0,sizeof(isprime));    for(i=2;i<max;i++)    {        if(vis[i]==0)        {            prime[cnt++]=i;        }        for(j=0;j<cnt&&i*prime[j]<max;j++)        {            vis[i*prime[j]]=1;        }    }    for(i=0;i<cnt;i++)    {        isprime[prime[i]]=1;    }}int main(){    Init();    int n;    while(scanf("%d",&n)!=EOF)    {        int i,t,sum=0;        for(i=0;i<n;i++)        {            scanf("%d",&t);            if(t==1)            {                sum+=1;            }            else if(isprime[t])            {                sum+=t;            }        }        printf("%d\n",sum);    }    return 0;}

0 0
原创粉丝点击