bzoj 4805: 欧拉函数求和
来源:互联网 发布:c语言是解释型语言吗 编辑:程序博客网 时间:2024/06/08 06:47
题意:求∑inϕ(i)
同3944杜教筛
code:
#include<cstdio>#include<cstdlib>#include<iostream>#include<cstring>#define LL long longusing namespace std;int pr=0;LL phi[5000010],prime[5000010];bool v[5000010];void pre(){ memset(v,true,sizeof(v)); pr=0;phi[1]=1; for(int i=2;i<=5000000;i++) { if(v[i]) prime[++pr]=(LL)i,phi[i]=(LL)(i-1); for(int j=1;j<=pr&&(LL)i*prime[j]<=5000000;j++) { v[i*prime[j]]=false; if(i%prime[j]==0){phi[i*prime[j]]=phi[i]*prime[j];break;} phi[i*prime[j]]=phi[i]*(prime[j]-1); } }// for(int i=1;i<=10;i++) printf("%d ",phi[i]);printf("\n"); for(int i=2;i<=5000000;i++) phi[i]+=phi[i-1];}LL solve(int n){ if(n<=5000000) return phi[n]; LL ans=0;int pos; for(int i=2;i<=n;i=pos+1) { pos=n/(n/i); ans+=(pos-i+1)*solve(n/i); } return (LL)n*(n+1)/2-ans;}int main(){ pre(); int n;scanf("%d",&n); printf("%lld",solve(n));}
阅读全文
1 0
- BZOJ 4805 欧拉函数求和 数论
- BZOJ 4805(欧拉函数求和-杜教筛)
- bzoj 4805: 欧拉函数求和 杜教筛
- bzoj 4805: 欧拉函数求和
- bzoj 4805 欧拉函数求和 杜教筛
- bzoj 2818 Gcd 欧拉函数求和
- 欧拉函数求和
- 欧拉函数求和
- HYSBZ 4805 欧拉函数求和
- NYOJ 570 欧拉函数求和【欧拉函数求和】
- NYOJ - 欧拉函数求和
- NYOJ570---欧拉函数求和
- bzoj4805: 欧拉函数求和
- bzoj4805: 欧拉函数求和
- BZOJ 3884 (欧拉函数)
- BZOJ 2705 欧拉函数
- BZOJ 2818 欧拉函数
- BZOJ 2190 欧拉函数
- IOS问题集合
- Python单元测试——深入理解unittest
- Android O中的快捷方式好微件更新
- nginx配置文件
- ContentProvider的理解与使用
- bzoj 4805: 欧拉函数求和
- CodeForces
- 拓展欧几里得算法
- 访问本地json文件的方法
- 关于电脑安装多个版本JDK后使用时的切换
- 【矩阵的乘法和加法模板】
- HDU 6118 度度熊的交易计划 最小费用可行流
- 【第7章】像高手一样玩转数据
- bootstrap-select下拉搜索插件 动态加载自己数据的二级联动