fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define FR0(i,N) for(i=0;i<(N);i++)
  4. #define FR1(i,N) for(i=1;i<=(N);i++)
  5. #define FRN(i,k,N) for(i=k;i<(N);i++)
  6. #define pf printf
  7. #define db double
  8. #define max3(a,b,c) max(max(a,b),c)
  9. #define min3(a,b,c) min(min(a,b),c)
  10. #define sci(n) scanf("%d",&n)
  11. #define scl(n) scanf("%lld",&n)
  12. #define scf(n) scanf("%f",&n)
  13. #define scd(n) scanf("%lf",&n)
  14. #define scs(s) scanf("%s",&s)
  15. #define scll(n) scanf("%%I64d",&n)
  16. #define PI acos(-1.0)
  17. #define LL long long
  18. #define MX 1000005
  19. #define MOD 1000000007
  20. typedef long long int ll;
  21. bool status[1100002];
  22.  
  23. int main()
  24. {
  25. int n;
  26. while(sci(n) && n>0)
  27. {
  28. if(n==1)
  29. {
  30. printf("0\n");
  31. continue;
  32. }
  33. int result=n;
  34. for(int i=2; i*i<=n; i++)
  35. {
  36. if(n%i==0)
  37. {
  38. while(n%i==0)
  39. {
  40. n/=i;
  41. }
  42. result-=result/i;
  43. }
  44. }
  45. if(n>1)
  46. {
  47. result-=result/n;
  48. }
  49.  
  50. printf("%d\n",result);
  51. }
  52. }
  53.  
Success #stdin #stdout 0s 4536KB
stdin
7
12
0
stdout
6
4