phi(x):
int phi(int x){
int ans=x;
for(int i=2;i*i<=x;i++){
if(x%i==0){
ans-=ans/i;
while(x%i==0) x/=i;
}
}
if(x>1)
ans-=ans/x;
return ans;
}
phi(x)表:
(一般素数筛变形)
int p[MAXN];
void phi(){
for(int i=1;i<MAXN;i++) p[i]=i;
for(int i=2;i<MAXN;i++){
if(p[i]==i){
for(int j=i;j<MAXN;j+=i)
p[j]-=p[j]/i;
}
}
}