水题,直接欧拉数模板。
#include<stdio.h>
#include<math.h>
__int64 ea(__int64 n)
{
__int64 sum=n,a;
for(a=2;a<=sqrt(n+0.5);a++)
{
if(n%a==0)
{
sum=sum*(a-1)/a;
while(n%a==0)
n=n/a;
}
}
if(n>1)
sum=sum*(n-1)/n;
return sum;
}
int main()
{
__int64 n;
while(scanf("%I64d",&n)&&n)
{
printf("%I64d\n",n-1-ea(n));
}
return 0;
}