欧拉函数:对于正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。
例如对于下面的子函数n=12时,ans=4;因为有1、5、7、11四个数与十二互为质数(素数)。
int Eular(int n)
{
int ans=1;
for(int i=2;i<=sqrt((double)n);i++)
{
if(n%i==0)
{
n/=i;
ans*=(i-1);
while(n%i==0)
{
n/=i;
ans*=i;
}
}
}
if (n>1)
ans*=(n-1);
return ans;
}