Guest User

Untitled

a guest
May 17th, 2021
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. void solve();
  4. vector<int> primeSieve(int *p , int n) {
  5. // p[0] = p[1] = 0;
  6. for (int i = 3; i <= n; i += 2)
  7. {
  8. p[i] = 1; // marling all odd numbers prime
  9. }
  10.  
  11. for (int i = 3; i <= n; i += 2)
  12. {
  13. if (p[i]) {
  14. //optimisation of taking 2*i jumps
  15. for (int j = i * i; j <= n; j += 2 * i)
  16. {
  17. p[j] = 0;
  18. }
  19. }
  20. }
  21. vector<int> primes;
  22. primes.push_back(2);
  23. for (int i = 3; i <= n; i += 2)
  24. {
  25. if (p[i])
  26. primes.push_back(i);
  27. }
  28. return primes;
  29. }
  30. void factorize(int m, vector<int> &primes) {
  31.  
  32. vector<int> factors;
  33. factors.clear();
  34. int p;
  35. for (int i = 0; p * p <= m; ++i)
  36. {
  37. p = primes[i];
  38. if (m % p == 0) {
  39. while (m % p == 0) {
  40. factors.push_back(p);
  41. m /= p;
  42. }
  43. }
  44. }
  45. if (m != 1) {
  46. factors.push_back(m);
  47. }
  48. for (auto i : factors) {
  49. cout << i << " ";
  50. }
  51. }
  52.  
  53. int main()
  54. {
  55. ios_base::sync_with_stdio(false); cin.tie(NULL);
  56.  
  57. #ifndef ONLINE_JUDGE
  58. freopen("input.txt", "r", stdin);
  59. freopen("error.txt", "w", stderr);
  60. freopen("output.txt", "w", stdout);
  61. #endif
  62.  
  63. int t = 1;
  64. /*is Single Test case?*/cin >> t;
  65. while (t--)
  66. {
  67. solve();
  68. cout << "\n";
  69. }
  70.  
  71. cerr << "time taken : " << (float)clock() / CLOCKS_PER_SEC << " secs" << endl;
  72. return 0;
  73. }
  74. void solve()
  75. {
  76. int p[1000000] = {};
  77. int n; cin >> n;
  78. vector<int> primes = primeSieve(p, 100);
  79.  
  80. factorize(n, primes);
  81.  
  82. }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment