Advertisement
Saleh127

UVA 10914

Nov 26th, 2020
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int t; cin>>t; for(int cs=1;cs<=t;cs++)
  5. #define maX 10000008
  6. ll ans[maX];
  7. bool marked[maX];
  8. void sieve()
  9. {
  10. marked[0]=1;
  11. marked[1]=1;
  12. for(ll i=4; i<=maX; i+=2)
  13. {
  14. marked[i]=1;
  15. }
  16. for(ll i=3; i<=maX; i+=2)
  17. {
  18. if(marked[i]==0)
  19. {
  20. for(ll j=i*i; j<=maX; j+=i+i)
  21. {
  22. marked[j]=1;
  23. }
  24. }
  25. }
  26. }
  27.  
  28. void pre()
  29. {
  30.  
  31. ll i,j,k,l;
  32. for(i=6; i<maX; i+=2)
  33. {
  34. k=i;
  35. l=1;
  36. while(k%2==0)
  37. {
  38. k/=2;
  39. l++;
  40. }
  41. if(marked[k]==1) continue;
  42.  
  43. ll twsum=pow(2,l)-1;
  44.  
  45. ll x=(k*k)-1;
  46.  
  47. ll oddsum=x/(k-1);
  48.  
  49. ll divsum=twsum*oddsum;
  50.  
  51. ll anssum=divsum-(2*i);
  52.  
  53. ans[i]=anssum;
  54. }
  55. for(i=2; i<maX; i++)
  56. {
  57. ans[i]=ans[i]+ans[i-1];
  58. }
  59. }
  60.  
  61. int main()
  62. {
  63. ios_base::sync_with_stdio(0);
  64. cin.tie(0);
  65. cout.tie(0);
  66.  
  67. sieve();
  68. pre();
  69.  
  70. ll n;
  71. while(cin>>n && n)
  72. {
  73. cout<<n<<" "<<ans[n]<<endl;
  74. }
  75.  
  76.  
  77. return 0;
  78. }
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement