ruhan008

primeFactors

Sep 29th, 2025
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. {
  2. "": {
  3. "prefix": "cd_primeFactor",
  4. "body": [
  5. "const int N = 2e5 + 10;",
  6. "vector<bool> isPrime(N, 1);",
  7. "vector<int> hp(N, 0);",
  8. "",
  9. "// call sieve() in main",
  10. "void sieve(){",
  11. " isPrime[0] = isPrime[1] = 0;",
  12. "",
  13. " for(int i = 2; i < N; i++){",
  14. " if(isPrime[i]){",
  15. " hp[i] = i;",
  16. "",
  17. " for(int j = 2 * i; j < N; j += i) {",
  18. " isPrime[j] = 0;",
  19. " hp[j] = i;",
  20. " }",
  21. " }",
  22. " }",
  23. "}",
  24. "",
  25. "vector<pair<int, int>> primeFactors(int n){",
  26. " vector<pair<int,int>> prime_factors;",
  27. "",
  28. " while(n > 1){",
  29. " int prime_factor = hp[n];",
  30. " int ct= 0;",
  31. "",
  32. " while(n % prime_factor == 0) {",
  33. " n /= prime_factor;",
  34. " ct++;",
  35. " }",
  36. "",
  37. " // ct -> number of prime_factor in 'n'",
  38. " prime_factors.push_back({prime_factor, ct});",
  39. " }",
  40. "",
  41. " reverse(prime_factors.begin(), prime_factors.end());",
  42. "",
  43. " return prime_factors;",
  44. "}"
  45. ],
  46. "description": ""
  47. }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment