博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GCD - Extreme (II)(欧拉函数)
阅读量:4701 次
发布时间:2019-06-09

本文共 1010 字,大约阅读时间需要 3 分钟。

b[n]表示1到n-1与n的gcd的和,所以dp[n]=dp[n-1]+dp[n];

a[i]表示与gcd(n, x)= i的x的个数;

所以b[n]=sum(a[i]*i) , 所以我们只需求a[i]即可;

根据gcd(n, x)=i --->gcd(n/i, x/i) = 1,

因此仅仅要求出欧拉函数phi(n / i),就能够得到与n / i互质的个数;

从而求出gcd(x , n) = i的个数,这样总体就能够求解了;

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f#define mem(a,b) memset(a,b,sizeof(a))#define ll long long#define sd(x) scanf("%d",&(x))#define sl(x) scanf("%lld",&(x))#define slf(x) scanf("%lf",&(x))#define scs(s) scanf("%s",s)#define rep(i,a,b) for(int i=a;i<=b;i++)#define per(i,a,b) for(int i=a;i>=b;i--)#define lowbit(x) x&(-x)#define ls now<<1#define rs now<<1|1#define lson l,mid,ls#define rson mid+1,r,rs#define int long longusing namespace std;const int maxn=5e6+10;const int N=4000001;int a[maxn],b[maxn],dp[maxn];void oula(){ //a[1]=1; for(int i=2;i

 

转载于:https://www.cnblogs.com/minun/p/11348521.html

你可能感兴趣的文章
我的Java设计模式-策略模式
查看>>
C# 报表接口样例,简单实用
查看>>
C++常见内存错误及解决方案
查看>>
音视频学习路线规划(2015-11)
查看>>
使用delphi 开发多层应用(十八)使用Basic4android 访问RTC 服务的二进制流(照片)...
查看>>
Hello World!
查看>>
一、虚拟环境.二、路由配置主页与404.三、2.x路由分发.四、伪静态.五、request对象.六、FBV与CBV.七、文件上传....
查看>>
电费2
查看>>
定时任务 - quartz
查看>>
【高斯消元】【图论】[Wc2011][HYSBZ/BZOJ2155]Xor
查看>>
NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目
查看>>
redmine 一键安装
查看>>
021-异步注册登录(检测用户名)
查看>>
gitlab、github账户密码修改后,记得修改本地账户的git凭据
查看>>
2019年春季学期第二周作业
查看>>
深入浅出 Java 中的包装类
查看>>
SQL点点滴滴_修改数据库的兼容级别
查看>>
赋予ANDROID模拟器root权限2.2
查看>>
requests:json请求中中文乱码处理
查看>>
Error:“const char*”类型的实参与“wchar_t”类型的形参不兼容
查看>>