数学专项number_theory:UVa 11105
来源:互联网 发布:preview.exe软件下载 编辑:程序博客网 时间:2024/05/22 03:45
先用类似筛素数的方法,筛出primeH_number。然后所有primeH_number两两相乘所得的数即为semi-primeH_number了。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define M 1000010int vis[M];int prime[M],p;int cnt[M];void init(){ memset(vis,0,sizeof(vis)); p=0; for(int i=1;4*i+1<=1000001;i++) if(!vis[4*i+1]) { prime[p++]=4*i+1; for(int j=1;4*j+1<=1000001;j++) if((long long)(4*j+1)*(4*i+1)>1000001) break; else vis[(4*i+1)*(4*j+1)]=1; } for(int i=0;i<p;i++) for(int j=i;j<p;j++) if((long long)prime[j]*prime[i]>1000001) break; else vis[prime[j]*prime[i]]=2; memset(cnt,0,sizeof(cnt)); for(int i=1;i<=1000001;i++) if(vis[i]==2) cnt[i]=cnt[i-1]+1; else cnt[i]=cnt[i-1];}int main(){ freopen("in.txt","r",stdin); int n; init(); while(cin>>n&&n) { cout<<n<<" "<<cnt[n]<<endl; } return 0;}
- 数学专项number_theory:UVa 11105
- 数学专项number_theory:UVa 10515
- 数学专项number_theory:UVa 10622
- 数学专项number_theory:UVa 10127
- 数学专项number_theory:UVa 10090
- 数学专项number_theory:UVa 10539
- 数学专项number_theory:UVa 11490
- 数学专项number_theory:UVa 11728
- 数学专项number_theory:UVa 10692
- 数学专项number_theory:UVa 10951
- 数学专项number_theory:UVa 756
- 数学专项number_theory:UVa 718
- 数学专项number_theory:UVa 294
- 数学专项number_theory:UVa 10368
- 数学专项number_theory:UVa 10162
- 数学专项number_theory:UVa 11768
- 数学专项number_theory:UVa 10236
- 数学专项number_theory:LA 4079
- 我为什么不考研(一)
- 数学专项number_theory:UVa 10539
- LA 3942 - Remember the Word
- 问题一百二十三:统计子串
- 关于派生类成员变量的内存问题
- 数学专项number_theory:UVa 11105
- hdu3336-Count the string
- n进制小数 将任意十进制正小数分别转换成2,3,4,5,6,7,8,9进制正小数,小数点后保留8位,并输出。
- HDU 3342
- ROS探索总结(四)——简单的机器人仿真
- KMP算法
- Quartz学习(二)--Quartz 框架核心接口
- uva188 - Perfect Hash(完美哈希)
- hdu1272 小希的迷宫