欧拉函数/欧拉定理/扩展欧拉定理
欧拉定理:
若a与m互质,那么a^phi(m) 与 1 在模m的意义下 同余
其中phi(m)为欧拉函数;
表达式phi(m)=m*(求和)((pi-1)/pi)(pi为m的因数)
扩展欧拉定理:
用于降幂
当b<phi(m)时 ,a^b 与 a^b 在 模m意义下 同余
当b>=phi(m)时,a^b 与 a^(b mod phi(m) + phi(m)) 在 模m意义下 同余
(b的处理用秦九韶公式)
getphi方法求m的欧拉函数
复杂度O(sqrt(m))
int getphi(int m){
int res=m;
for(int i=2;i*i<=m;i++){
if(m%i==0){
res=res*(i-1)/i;
while(m%i==0)m/=i;
}
}
if(m>1){
res=res*(m-1)/m;
}
return res;
}
扩展欧拉定理降幂
复杂度O(b)
int depow(int phi){
int res=0;
bool f=false;
for(int i=0;b[i];i++){
res=res*10+(b[i]-'0');
if(res>=phi){
f=true;
res%=phi;
}
}
if(f)res+=phi;
return res;
}

浙公网安备 33010602011771号