UVA 11105(p345)----Semi-prime H-numbers

来源:互联网 发布:stc单片机引脚定义 编辑:程序博客网 时间:2024/05/29 04:37
#include<iostream>#include<cstdio>#include<vector>#include<cstring>#include<algorithm>using namespace std;const int maxn=250000;typedef long long LL;vector<int> hp;vector<LL> ans;int v[maxn*4+50];int h,vis[maxn*4+50];void prepare(){    memset(v,1,sizeof(v));    for(int i=1; i<=maxn; i++)        if(v[i*4+1])        {            hp.push_back(i*4+1);            for(int j=2*(i*4+1);j<=(maxn*4+1);j+=(i*4+1))                v[j]=0;        }}int main(){    prepare();    while(scanf("%d",&h)==1&&h)    {        int cnt=0;        memset(vis,0,sizeof(vis));        for(int i=0;i<hp.size();i++)        {            if(hp[i]*hp[i]>h) break;            for(int j=i;j<hp.size();j++)            {                int tmp=hp[i]*hp[j];                if(tmp>h) break;                if(vis[tmp]) continue;                cnt++;                vis[tmp]=1;            }        }        printf("%d %d\n",h,cnt);    }    return 0;}

0 0
原创粉丝点击