//法一
#include<stdio.h>
int eular(int n)
{
int i,m=1;
for(i=2;i*i<=n;i++)
if(n%i==0)
{
n/=i;
m*=i-1;
while(n%i==0)
{
n/=i;
m*=i;
}
}
if(n>1)
m*=n-1;
return m;
}
int main()
{
int n;
while(scanf("%d",&n)&&n)
{
printf("%d\n",eular(n));
}
return 0;
}
//法二
#include<stdio.h>
int eular(int n)
{
int i,m=n,t=0;
for(i=2;i*i<=n;i++)
if(n%i==0)
{
t=1;
n/=i;
m=m-m/i;
while(n%i==0)
{
n/=i;
}
}
if(t==1&&n>1) return m-m/n;
else if(t==1||n==1) return m;
return n-1;
}
int main()
{
int n;
while(scanf("%d",&n)&&n)
{
printf("%d\n",eular(n));
}
return 0;
}