Maruf_Hasan

PhiFunction

Feb 1st, 2020
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4.  
  5. #define pb push_back
  6. #define ll long long
  7. #define pii pair<ll,ll>
  8. #define pll pair<ll,ll>
  9. #define M 100007
  10. #define INF 1e9
  11. #define INFL 1e18
  12. #define PI acos(-1)
  13. #define mp make_pair
  14. #define fast_in_out ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  15. #define Max 1000000
  16. int phi[Max];
  17.  
  18.  
  19.  
  20.  
  21. int PhiFunc(ll n)
  22. {
  23. ll result=n;
  24. for(ll i=2;i*i<=n;i++)
  25. {
  26. if(n%i==0)
  27. {
  28. while(n%i==0)
  29. {
  30. n/=i;
  31. }
  32. result-=result/i;
  33. }
  34. }
  35. if(n>1)
  36. {
  37. result-=result/n;
  38. }
  39. return result;
  40. }
  41. void phi_1_to_n(int n)//nloglogn
  42. {
  43. vector<int>phi(n+1);
  44. phi[0]=0;
  45. phi[1]=1;
  46. for(int i=2;i<=n;i++)
  47. {
  48. phi[i]=i;
  49. }
  50. for(int i=2;i<=n;i++)
  51. {
  52. if(phi[i]==i)
  53. {
  54. for(int j=i;j<=n;j+=i)
  55. {
  56. phi[j]-=phi[j]/i;
  57. }
  58. }
  59. }
  60. }
  61.  
  62. void phi_1_to_n(int n)//nlogn
  63. {
  64. vector<int>phi(n+1);
  65. phi[0]=0;
  66. phi[1]=1;
  67. for(int i=2;i<=n;i++)
  68. {
  69. phi[i]=i-1;
  70. }
  71. for(int i=2;i<=n;i++)
  72. {
  73. for(int j=2*i;j<=n;j+=i)
  74. {
  75. phi[j]-=phi[i];
  76. }
  77. }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment