码迷,mamicode.com
首页 > 其他好文 > 详细

POJ3292 Semi-prime H-numbers

时间:2017-08-08 23:14:37      阅读:406      评论:0      收藏:0      [点我收藏+]

标签:lib   n+1   view   play   定义   ace   display   clu   sans   

定义H数为4n+1,n>=0的数,H素数为H数中只能拆成1*x,x为H数的数,求1-n<=1000000中H素数的个数。

筛法。

技术分享
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 #include<algorithm>
 5 #include<iostream>
 6 using namespace std;
 7 
 8 int n;
 9 #define maxn 1000011
10 int prime[maxn],lp=0;bool notp[maxn];
11 void makeprime()
12 {
13     memset(notp,0,sizeof(notp));
14     notp[1]=0;
15     for (int i=5;i<=n;i+=4)
16         if (!notp[i])
17         {
18             prime[++lp]=i;
19             for (int j=i*5;j<=n;j+=(i<<2)) notp[j]=1;
20         }
21 }
22 bool isans[maxn];int ans[maxn];
23 int main()
24 {
25     n=1000001;
26     makeprime();
27     memset(isans,0,sizeof(isans));
28     for (int i=1;i<=lp;i++)
29         for (int j=1;prime[j]*prime[i]<=n;j++)
30             isans[prime[i]*prime[j]]=1;
31     ans[0]=0;
32     for (int i=1;i<=n;i++) ans[i]=ans[i-1]+isans[i];
33     while (scanf("%d",&n) && n)
34         printf("%d %d\n",n,ans[n]);
35     return 0;
36 }
View Code

 

POJ3292 Semi-prime H-numbers

标签:lib   n+1   view   play   定义   ace   display   clu   sans   

原文地址:http://www.cnblogs.com/Blue233333/p/7309262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!