#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int euler_phi(int n){
int m=(int)sqrt(n+0.5);
int ans=n;
for(int i=2;i<=m;i++){
if(n%i==0) {
ans=ans/i*(i-1);
while(n%i==0) n/=i;
}
}
if(n>1) ans=ans/n*(n-1);
return ans;
}
int main(){
int n;cin>>n;
cout<<euler_phi(n);
}
【数论】计算单个欧拉函数
最新推荐文章于 2022-02-12 14:57:08 发布