#include<stdio.h>
#include<math.h>
long long int euler(long long int n)
{
long long int i,m = (int)sqrt(n+0.5),ans = n;
for(i = 2;i <= m;i++)
{
if(n%i==0)
ans = ans*(i-1)/i;
while(n%i==0)
n/=i;
}
if(n>1)
ans = ans*(n-1)/n;
return ans;
}
long long int a;
int main()
{
while(scanf("%lld",&a)!=-1&&a!=0)
{
printf("%lld\n",euler(a));
}
return 0;
}
转载于:https://www.cnblogs.com/wangzhili/p/3950409.html