数学基础-素数筛法
来源:互联网 发布:小站tpo模考软件 编辑:程序博客网 时间:2024/05/18 15:26
//HDU - 2136 #include <stdio.h>#include <string.h>#include <algorithm>#include <utility>#include <queue>#define MAX 1000000using namespace std;int lpf[MAX];int main(){ int n,cnt,i,j; memset(lpf,0,sizeof(lpf)); lpf[2]=1; for(i=4;i<MAX;i+=2) lpf[i]=lpf[2]; cnt=2; for(i=3;i<MAX;i+=2){ if(lpf[i]) continue; lpf[i]=cnt++; for(j=(i<<1);j<MAX;j+=i) lpf[j]=lpf[i]; } while(~scanf("%d",&n)) printf("%d\n",lpf[n]); return 0;}
//HDU - 2098 #include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<cctype>#include<algorithm>#include<vector>#include<set>#include<queue>#include<deque>using namespace std;const int maxn=10005;int notprime[maxn];void init(){ memset(notprime,0,sizeof(notprime)); notprime[0]=notprime[1]=1; for(int i=2;i<maxn;i++) if(!notprime[i]){ if(i>maxn/i)continue; for(int j=i*i;j<maxn;j+=i) notprime[j]=1; }// for(int i=0;i<20;i++){// cout<<i<<" "<<notprime[i]<<endl;// }}int main(){ init(); int inp; while(cin>>inp&&inp){ int cnt=0; int mid=(inp+1)/2; for(int i=inp;i>=mid;i--){ if(!notprime[i]&&!notprime[inp-i]&&2*i!=inp){ cnt++;// cout<<i<<" "<<inp-i<<endl; } } cout<<cnt<<endl; } return 0;}
0 0
- 数学基础-素数筛法
- 数学基础-素数筛法模板
- 【数学】素数筛法
- 【 数学基础】【素数线性筛法--欧拉筛法模板】【普通筛法的优化】
- 数学问题(1 )--素数筛法
- 素数筛模板(数学)
- 数学-素数筛及其拓展
- 素数筛算法与素数打表[数学]
- 河南多校--可怜张继科没夺冠【打表--素数筛法--搜索--数学---物理】
- 【数学】素数密度
- Hduoj1164 【数学】【素数】
- 数学模板-素数判断
- Java编程算法基础---素数与筛法
- CF402D Upgrading Array(贪心+数学+线性素数筛)
- 数学基础
- 数学基础
- 数学基础
- 数学基础
- 收获:如何使用github和hexo搭建个人博客
- 高中OJ3514. 【NOIP2013模拟11.6B组】最小比例
- Compile ffmpeg for Android
- supergridcontrol中如何添加gridcolumn
- 在学习泛型时遇到的困惑经常与func<T,U>混淆
- 数学基础-素数筛法
- list集合分页
- java 关于int和Integer的面试题
- 1055. The World's Richest (25)
- pat a1004(暂缺)
- 每天一个linux命令:df 命令
- java.util.concurrent包中线程池Executors的使用
- hdu1863 畅通工程
- swift闭包的循环引用