a53

Eratostene5

a53
Jan 3rd, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream f("eratostene5.in");
  4. ofstream g("eratostene5.out");
  5. bitset<1000005>pr;
  6. vector<int>v;
  7. int n,x,fr[1000005];
  8. void ciur()
  9. {
  10. pr[0]=pr[1]=1;
  11. for(int i=4; i<=1000000; i+=2)
  12. pr[i]=1;
  13. for(int i=3; i+i<=1000000; i+=2)
  14. if(!pr[i])
  15. for(int j=i+i; j<=1000000; j+=i)
  16. pr[j]=1;
  17. v.push_back(2);
  18. for(int i=3; i<=1000000; i+=2)
  19. if(!pr[i])
  20. v.push_back(i);
  21. }
  22. void desc(int n)
  23. {
  24. int k=0;
  25. while(v[k]*v[k]<=n)
  26. {
  27. while(n%v[k]==0)
  28. n/=v[k],fr[v[k]]++;
  29. k++;
  30. }
  31. if(n>1)
  32. fr[n]++;
  33. }
  34. int main()
  35. {
  36. ciur();
  37. f>>n;
  38. for(int i=1; i<=n; i++)
  39. {
  40. f>>x;
  41. desc(x);
  42. }
  43. for(int i=0; i<v.size(); i++)
  44. if(fr[v[i]])
  45. g<<v[i]<<" "<<fr[v[i]]<<"\n";
  46. return 0;
  47. }
Add Comment
Please, Sign In to add comment