fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. bool is_prime(const unsigned long int &number) {
  7. for (unsigned long int i = 2; i <= sqrt(number); i++) {
  8. if (number%i == 0) return false;
  9. }
  10. return true;
  11. }
  12. unsigned long int next_prime(unsigned long int current) {
  13. current++;
  14. while (!is_prime(current)) {
  15. current++;
  16. }
  17. return current;
  18. }
  19.  
  20. // THE PROBLEM SOLVER
  21. vector<unsigned long int> find_divisors(const unsigned long int &n) {
  22. vector<unsigned long int> divisors;
  23. for (unsigned long int i = 2; i <= n; i = next_prime(i)) {
  24. if (n%i == 0) divisors.push_back(i);
  25. }
  26. return divisors;
  27. }
  28.  
  29. int main() {
  30. unsigned long int n;
  31. vector<unsigned long int> divisors;
  32. cin>>n;
  33.  
  34. divisors = find_divisors(n);
  35.  
  36. for(auto &n : divisors) cout<<n<<" ";
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 3.75s 3476KB
stdin
999999
stdout
3 7 11 13 37