您的位置:首页 > 其它

POJ3292

2015-11-08 23:16 190 查看
水题,给出一个数n,求在1到n中,刚好是由两个模4余1的素数相乘得到的数有多少个

#include <iostream>

#include <cstdio>

#include <queue>

#include <algorithm>

#include <cstring>

#include <string>

#include <stack>

#include <stdlib.h>

using namespace std;

const int size=1000001;

int H_number[size+1];

int H[size+1];

void isH_number()

{

    memset(H_number,0,sizeof(H_number));

    for(int i=5;i<=size;i+=4)

        for(int j=5;j<=size;j+=4)

    {

        int m=i*j;

        if(m>size)break;

        if(H_number[i]==0&&H_number[j]==0)H_number[m]=1;

        else H_number[m]=-1;

    }

    int count=0;

    for(int i=1;i<=size;i++)

    {

        if(H_number[i]==1)count++;

        H[i]=count;

    }

}

int main()

{

    isH_number();

    int n;

    while(cin>>n&&n)

    {

       cout<<n<<' '<<H
<<endl;

    }

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: