int euler(int n){
int ret=n,a=n;
for (int i=2;i*i<=n;++i){
if (a%i==0) ret=ret/i*(i-1);
while(a%i==0) a/=i;
}
if (a>1) ret=ret/a*(a-1);
return ret;
}
int euler(int n){
int ret=n,a=n;
for (int i=2;i*i<=n;++i){
if (a%i==0) ret=ret/i*(i-1);
while(a%i==0) a/=i;
}
if (a>1) ret=ret/a*(a-1);
return ret;
}
本文标题:欧拉函数模板
本文链接:https://www.haomeiwen.com/subject/zzfxaxtx.html
网友评论