欧拉函数euler(x)返回的是与x互质的数的个数,如euler(8)=4 ps.8与1,3,5,7四个数互质
欧拉函数的通式是 euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中pi是x的约数
代码实现:
int euler(int n) {
int ans=n;
for(int i=2;i*i<=n;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;
}