Pabon_SEC

Euler Totient Naive

Aug 22nd, 2016
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.77 KB | None | 0 0
  1. /***
  2.  
  3. Bismillahir Rahmanir Rahim
  4.  
  5.  _______
  6. |   __  \           _____
  7. |  |__|  )_______   |   /     ____    ______
  8. |   ____/ \__    \  |  |__   /    \  |      \
  9. |  (        / __  \ |  __ \ /  __  \ |   /\  \
  10. |  |       (____  / |     / \      / |__/  \  )
  11. |__|            \/  |____/   \____/         \/
  12.  
  13. ***/
  14.  
  15. #include<bits/stdc++.h>
  16.  
  17. using namespace std;
  18.  
  19. int phi(int n)
  20. {
  21.     int ret = n,i;
  22.  
  23.     for(i=2 ; i*i<=n ; i++)
  24.     {
  25.         if(n%i==0)
  26.         {
  27.             while(n%i==0)
  28.             {
  29.                 n/=i;
  30.             }
  31.  
  32.             ret-=ret/i;
  33.         }
  34.     }
  35.  
  36.     if(n>1)
  37.     {
  38.         ret-=ret/n;
  39.     }
  40.  
  41.     return ret;
  42. }
  43.  
  44. int main()
  45. {
  46.  
  47.     int n;
  48.  
  49.     while(cin>>n)
  50.     {
  51.         cout<<phi(n)<<endl;
  52.     }
  53.  
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment