JacobianDet

Untitled

May 4th, 2018
395
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1.  
  2. #include <bits/stdc++.h>
  3. #define CHOR 1000001
  4. #define pb push_back
  5.  
  6. typedef long long ll;
  7.  
  8. int lo[CHOR], mu[CHOR], phi[CHOR];
  9. ll f[CHOR];
  10.  
  11. void phi_calc(void)
  12. {
  13. for(int i=1;i<CHOR;i++)
  14. {
  15. lo[i] = i;
  16. mu[i] = 1;
  17. }
  18. for(ll i=2;i<CHOR;i++)
  19. {
  20. if(lo[i] == i)
  21. {
  22. for(ll j=i*i;j<CHOR;j+=i)
  23. {
  24. if(lo[j] == j)
  25. lo[j] = i;
  26. }
  27. }
  28. }
  29. //std::cout<<lo[18]<<"\n";
  30. for(int i=2;i<CHOR;i++)
  31. {
  32. int j = i;
  33. while(lo[j/lo[j]] != lo[j])
  34. j /= lo[j];
  35. //std::cout<<i<<" "<<j<<"\n";
  36. if(j != 1)
  37. mu[i] = 0;
  38. else mu[i] = -1*mu[i/lo[i]];
  39. //std::cout<<mu[i]<<"\n";
  40. }
  41. for(int i=1;i<CHOR;i++)
  42. {
  43. for(ll j=i;j<CHOR;j+=i)
  44. phi[j] += (j/i)*mu[i];
  45. }
  46. for(int i=1;i<CHOR;i++)
  47. f[i] = f[i-1] + 1LL*phi[i];
  48. return;
  49. }
  50.  
  51. int main(void)
  52. {
  53. std::ios_base::sync_with_stdio(false);
  54. std::cin.tie(NULL);
  55. std::cout.tie(NULL);
  56. phi_calc();
  57. int n;
  58. std::cin>>n;
  59. while(n)
  60. {
  61. ll G = 0;
  62. std::vector<int> zex;
  63. for(int i=1,lx=0;i<=n;i=lx+1)
  64. {
  65. zex.pb(i);
  66. lx = n/(n/i);
  67. }
  68. for(int i=0,j=zex.size();i<j;i++)
  69. {
  70. if(i != j-1)
  71. G += 1LL*(((1LL*n/zex[i])*(1LL*n/zex[i] - 1))/2)*(f[zex[i+1]-1] - f[zex[i]-1]);
  72. else G += 1LL*(((1LL*n/zex[i])*(1LL*n/zex[i] - 1))/2)*(f[n] - f[zex[i]-1]);
  73. }
  74. std::cout<<G<<"\n";
  75. std::cin>>n;
  76. }
  77. return 0;
  78. }
Add Comment
Please, Sign In to add comment