fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long int
  4.  
  5. unordered_map<ll,ll> primeFactors(int n){
  6. unordered_map<ll,ll>a;
  7. // first cjeck for 2
  8. while(n%2==0){
  9. a[2]++;
  10. n = n/2;
  11. }
  12.  
  13. for(ll i=3; i*i<=n;i+=2){
  14. while(n%i==0){
  15. a[i]++;
  16. n = n/i;
  17. }
  18. }
  19.  
  20. // now check for prime number gretaer than sqrt n
  21. if(n>2){
  22. a[n]++;
  23. }
  24. return a;
  25. }
  26.  
  27. int main() {
  28. int n;
  29. cin>>n;
  30. unordered_map<ll,ll>b = primeFactors(n);
  31. for(auto x:b){
  32. cout<<x.first<<" : "<<x.second;
  33. cout<<endl;
  34. }
  35. return 0;
  36. }
Success #stdin #stdout 0.01s 5284KB
stdin
58
stdout
29 : 1
2 : 1