Saleh127

UVA 884.cpp

Jun 27th, 2020
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define test int t; cin>>t; while (t--)
  4. #define ll long long int
  5. #define fellow_junior ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  6. #define maX 1000008
  7. vector<ll>p;
  8. ll a[maX];
  9. bool marked[maX];
  10. void sieve()
  11. {
  12. marked[0]=1;
  13. marked[1]=1;
  14. for(ll i=4;i<=maX;i+=2)
  15. {
  16. marked[i]=1;
  17. }
  18. for(ll i=3;i<=maX;i+=2)
  19. {
  20. if(marked[i]==0)
  21. {
  22. for(ll j=i*i; j<=maX; j+=i+i)
  23. {
  24. marked[j]=1;
  25. }
  26. }
  27. }
  28. p.push_back(2);
  29. for(ll i=3;i<=maX;i+=2)
  30. {
  31. if(marked[i]==0)
  32. {
  33. p.push_back(i);
  34. }
  35. }
  36. }
  37. void fact()
  38. {
  39. ll i,j,k,l,c,d,e,f;
  40. for(i=2;i<maX;i++)
  41. {
  42. d=i;
  43. c=0;
  44. for(j=0;p[j]*p[j]<=i;j++)
  45. {
  46. if(d==1) break;
  47. if(marked[d]==0) break;
  48. while(d%p[j]==0)
  49. {
  50. c++;
  51. d/=p[j];
  52. }
  53. }
  54. if(d==1) a[i]=c;
  55. else a[i]=c+1;
  56. }
  57. for(i=3;i<maX;i++)
  58. {
  59. a[i]=a[i]+a[i-1];
  60. }
  61. }
  62. int main()
  63. {
  64. sieve();
  65. fact();
  66. ll na;
  67. while(cin>>na)
  68. {
  69. cout<<a[na]<<endl;
  70. }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment