Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
76
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. const int maxn = 1000005;
  4. int prime[maxn];
  5. vector<int> p, pFactor;
  6.  
  7. void seive()
  8. {
  9. memset(prime, 0, sizeof(prime));
  10. prime[0] = prime[1] = 1;
  11. for(int i = 4; i < maxn; i += 2) prime[i] = 1;
  12.  
  13. for(int i = 3; i*i < maxn; i += 2){
  14. if(prime[i] == 0){
  15. for(int j = i*i; j < maxn; j += i)
  16. prime[j] = 1;
  17. }
  18. }
  19. for(int i = 2; i < maxn; i++){
  20. if(prime[i] == 0) p.push_back(i);
  21. }
  22. }
  23. void primeFactorization(int x)
  24. {
  25. for(int i = 0; i < p.size(); i++){
  26. while(x % p[i] == 0){
  27. x /= p[i];
  28. pFactor.push_back(p[i]);
  29. }
  30. if(x == 1) break;
  31. }
  32. if(x != 1) pFactor.push_back(x);
  33. }
  34.  
  35. int main()
  36. {
  37. seive();
  38. int n;
  39. cin >> n;
  40. primeFactorization(n);
  41. for(int i = 0; i < pFactor.size(); i++)
  42. cout << pFactor[i] << " ";
  43. return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement