void eular(){
for(int i=1;i<=MAX;++i) phi[i]=i;
for(int i=2;i<=MAX;i+=2) phi[i]/=2;
for(int i=3;i<=MAX;i+=2)
if(phi[i]==i)
for(int j=i;j<=MAX;j+=i)
phi[j]=phi[j]/i*(i-1);
}
int eular(int x){
int i, res = x;
for(i = 2; i <= (int)sqrt(x); ++i){
if(x % i == 0){
res = res / i * (i - 1);
while(x % i == 0)
x /= i;
}
}
if(x != 1) res = res / x * (x - 1);
return res;
}