POJ 3292 Semi-prime H-numbers
2010-11-18 20:56
344 查看
用筛选法求素数算法的拓展
经历了TLE和WA后,终于AC了
注意到X为H-semi-prime当且仅当X=i*j且i和j都为H-prime
而当t为H-prime时,当且仅当t有两个因子——1和t
且当t为H-semi-prime时,t必然是H-composites,所以,不用将H-composites和H-semi-prime分开处理
代码:
经历了TLE和WA后,终于AC了
注意到X为H-semi-prime当且仅当X=i*j且i和j都为H-prime
而当t为H-prime时,当且仅当t有两个因子——1和t
且当t为H-semi-prime时,t必然是H-composites,所以,不用将H-composites和H-semi-prime分开处理
代码:
#include<iostream> using namespace std; int prime[1000010]; int hprime[1000010]; int main() { int i,j,k,h,cnt,pre=1; for(i=5;i<=1001;i=i+4) { for(j=i;i*j<=1000001;j=j+4) { if(prime[i]==0&&prime[j]==0)//i和j都是H-prime prime[i*j]=1;//i*j是H-semi-prime,也是H-composites else prime[i*j]=2;//i*j只是H-composites }//441=21*21=9*49 } for(i=1;i<=1000001;i++) { if(prime[i]==1) hprime[i]=hprime[i-1]+1; else hprime[i]=hprime[i-1]; } while(scanf("%d",&h)&&h) { printf("%d %d/n",h,hprime[h]); } return 0; }
相关文章推荐
- poj 3292 Semi-prime H-numbers
- poj 3292 Semi-prime H-numbers
- poj 3292 Semi-prime H-numbers 筛素数(简单题)
- 素数判定 & 素数筛法 & poj_3292_Semi-prime H-numbers
- poj 3292 Semi-prime H-numbers
- POJ3292——Semi-prime H-numbers
- poj 3292 Semi-prime H-numbers
- Semi-prime H-numbers(POJ--3292
- poj3292——Semi-prime H-numbers(数论)
- POJ 3292 Semi-prime H-numbers
- POJ - 3292 Semi-prime H-numbers(素数筛法)
- POJ 3292 Semi-prime H-numbers
- POJ 3292, Semi-prime H-numbers
- POJ 3292 Semi-prime H-numbers
- POJ 3292 Semi-prime H-numbers【筛选素数变形】
- POJ 3292 Semi-prime H-numbers
- poj 3292 Semi-prime H-numbers
- poj-3292-Semi-prime H-numbers
- POJ 3292 Semi-prime H-numbers (筛半H-素数)
- POJ 3292 - Semi-prime H-numbers(数学)