对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。例如:φ(8) = 4(Phi(8) = 4),因为1,3,5,7均和8互质。
#include <bits/stdc++.h>
using namespace std;
int n;
int phi(int n) {
int ret=1, i;
for(i=2; i*i<=n; i++) {
if(n%i == 0) {
n /= i;
ret *= i-1;
while(n%i == 0) {
n /= i;
ret *= i;
}
}
}
if(n>1)
ret *= n-1;
return ret;
}
signed main() {
cin>>n;
cout<<phi(n);
}