Advertisement
a53

Eratostene3

a53
Jan 2nd, 2020
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. #include <fstream>
  2. #define N 1000001
  3. using namespace std;
  4.  
  5. int Phi(int n)
  6. {
  7. int d;
  8. unsigned long long int nrp=n,prod=1;
  9. if(n%2==0)
  10. {
  11. while(n%2==0)
  12. n/=2;
  13. nrp*=(2-1),prod*=2;
  14. }
  15. d=3;
  16. while(n>1)
  17. {
  18. if(n%d==0)
  19. {
  20. while(n%d==0)
  21. n/=d;
  22. nrp*=d-1,prod*=d;
  23. }
  24. else
  25. d+=2;
  26. if(n>1&&d*d>n)
  27. {
  28. nrp*=n-1,prod*=n;
  29. break;
  30. }
  31. }
  32. return (int) (nrp/prod);
  33. }
  34.  
  35. int main()
  36. {
  37. int n;
  38. ifstream f("eratostene3.in");
  39. f>>n;
  40. int x;
  41. ofstream g("eratostene3.out");
  42. while(n--)
  43. f>>x,g<<Phi(x)<<' ';
  44. return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement