Advertisement
kazi_omar

prime factorization

Jun 22nd, 2023
816
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define scl(n) scanf("%lld", &n)
  5. #define pcl(n) printf("%lld\n", n)
  6. #define pcl1(n) printf("%lld ", n)
  7. #define nln printf("\n")
  8. #define yes printf("YES\n")
  9. #define no printf("NO\n")
  10. #define dev(x) cout << #x << " " << x << " ";
  11. #define PTT pair<ll, ll>
  12. map<ll, ll> primeFactorMap, mp1;
  13. map<ll, ll>::iterator itr;
  14.  
  15. #define M 1000000
  16. bool marked[M];
  17. vector<ll> primeVector;
  18.  
  19. bool isPrime(int n)
  20. {
  21.     if (n < 2)
  22.         return false;
  23.     if (n == 2)
  24.         return true;
  25.     if (n % 2 == 0)
  26.         return false;
  27.     return marked[n] == false;
  28. }
  29.  
  30. void sieve()
  31. {
  32.     primeVector.push_back(2);
  33.     for (ll i = 3; i * i <= M; i += 2)
  34.     {
  35.         if (marked[i] == false)
  36.         { // i is a prime
  37.             primeVector.push_back(i);
  38.             for (ll j = i * i; j <= M; j += i + i)
  39.             {
  40.                 marked[j] = true;
  41.             }
  42.         }
  43.     }
  44. }
  45.  
  46. int main()
  47. {
  48.     sieve();
  49.     ll n;
  50.     scl(n);
  51.     for (int i = 0; primeVector[i] <= n; i++)
  52.     {
  53.         while (n % primeVector[i] == 0)
  54.         {
  55.             primeFactorMap[primeVector[i]]++;
  56.             n /= primeVector[i];
  57.         }
  58.     }
  59.     for (itr = primeFactorMap.begin(); itr != primeFactorMap.end(); itr++)
  60.     {
  61.         cout << itr->first << " " << itr->second << endl;
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement