• Source
    1. #include<bits/stdc++.h>
    2.  
    3. using namespace std;
    4.  
    5. long long Euler_phi(long long n)
    6. {
    7. long long ret = n,i;
    8.  
    9. for(i=2 ; i*i<=n ; i++)
    10. {
    11. if(n%i==0)
    12. {
    13. while(n%i==0)
    14. {
    15. n/=i;
    16. }
    17.  
    18. ret-=ret/i;
    19. }
    20. }
    21.  
    22. if(n>1)
    23. {
    24. ret-=ret/n;
    25. }
    26.  
    27. return ret;
    28. }
    29.  
    30. int main()
    31. {
    32.  
    33. long long n;
    34.  
    35. while(scanf("%lld",&n)&&n)
    36. {
    37. printf("%lld\n",Euler_phi(n));
    38. }
    39.  
    40. return 0;
    41. }