fork download
  1. #include <iostream>
  2. #include <set>
  3. #include <string>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. void factors(unsigned long long u, set<unsigned long long>& fac)
  9. {
  10. unsigned long long s = sqrt(u);
  11.  
  12. for(unsigned long long i(2); i < s; ++i)
  13. {
  14. if(u % i == 0)
  15. {
  16. u /= i;
  17. fac.insert(i);
  18. fac.insert(u);
  19. }
  20. }
  21. }
  22.  
  23. int main()
  24. {
  25. set<unsigned long long> fac;
  26.  
  27. unsigned long long num(64);
  28.  
  29. factors(num, fac);
  30.  
  31. for(auto i : fac)
  32. cout << i <<endl;
  33. }
  34.  
Success #stdin #stdout 0s 2988KB
stdin
Standard input is empty
stdout
2
4
8
32