1到n里面素数的个数n<=1e11
来源:互联网 发布:中国网络作协 编辑:程序博客网 时间:2024/05/20 04:47
2016沈阳网络赛的最后一题,记录一下这个模板,来自某某大神,并不懂这个的原理,先放着当模板。
////Created by just_sort 2016/9/12 17:01//Copyright (c) 2016 just_sort.All Rights Reserved//#include <set>#include <map>#include <queue>#include <stack>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define ll long longll f[340000],g[340000],n;void init(){ ll i,j,m; for(m=1; m*m<=n; ++m)f[m]=n/m-1; for(i=1; i<=m; ++i)g[i]=i-1; for(i=2; i<=m; ++i) { if(g[i]==g[i-1])continue; ll x=min(m-1,n/i/i); for(j=1; j<=x; ++j) { if(i*j<m)f[j]-=f[i*j]-g[i-1]; else f[j]-=g[n/i/j]-g[i-1]; } x=i*i; for(j=m; j>=x; --j)g[j]-=g[j/i]-g[i-1]; }}int main(){ while(scanf("%I64d",&n)!=EOF) { init(); printf("%I64d\n",f[1]); } return 0;}
0 0
- 1到n里面素数的个数n<=1e11
- 求1e11以内的素数个数
- HDU5901 1e11以内素数的个数
- 求1到n之间素数的个数
- 求解1到n之间素数的个数
- Eratosthenes筛法求1到n内的素数个数
- 1到n,n个数的最小公倍数
- HDU 5901 Count primes(1e11以内的素数个数)
- 计算从[1,n]的素数个数
- 求 1~n 之间素数的个数
- 求1到N之间的素数
- 求1到n之间的素数
- 输出1到N之间的素数
- 统计1到N中1的个数,并找出满足飞fun(n)=n的最大n值
- 1到n之间1的个数
- 1到n中1的个数
- 1到n中1的个数
- 1到n中1的个数
- java.sql.SQLException: 无效的列索引
- 【NOIP2016提高A组模拟9.17】序列
- 【HDU 5884】Sort(哈夫曼+优先队列)
- 使用axis1.X根据WSDL地址生成客户端调用代码
- 深入 char * ,char ** ,char a[ ] ,char *a[]
- 1到n里面素数的个数n<=1e11
- webview容器属性
- Android原生嵌入React Native
- tortoisegit免密码远程提交
- Android 提取图片背景方法(纯色)
- Elasticsearch(9)实践五-更为复杂的查询
- 设置弹出的动画
- 启动apk的常用方法(包括只知道包名的启动方法)
- 八大排序