POJ-3292-Semi-prime H-numbers
2014-04-03 13:01
351 查看
题意比较简单,这个题跟筛素数差不多,后面我用的树状数组进行维护~
代码:
代码:
#include<cstdio> #include<cstring> #include<iostream> using namespace std; const int maxn=1e6+10; int t[maxn],cnt; long long pri[maxn]; bool ispri[maxn],vis[maxn]; int lowbit(int x) { return x&(-x); } void update(int index,int val) { for(;index<maxn;t[index]+=val,index+=lowbit(index)); } int Sum(int index) { int sum=0; for(;index>0;sum+=t[index],index-=lowbit(index)); return sum; } void Init() { cnt=0; int cou=0; for(int i=1;4*i+1<maxn;i++) if(!ispri[i*4+1]) { int val=i*4+1; for(int j=2;j*val<maxn;j++) ispri[val*j]=1; pri[cnt++]=val; } for(int i=0;i<cnt;i++) for(int j=i;j<cnt;j++) { if(pri[i]*pri[j]>maxn) break; if(!vis[pri[i]*pri[j]]) { update(pri[i]*pri[j],1); vis[pri[i]*pri[j]]=1; } } } int main() { Init(); int n; while(scanf("%d",&n)&&n) { printf("%d %d\n",n,Sum(n)); } return 0; }
相关文章推荐
- 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(H半素数)
- 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(筛法~)
- 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