How to print the first abundant odd number greater than one billion in C++

1 Answer

0 votes
#include <iostream>
#include <cmath>
 
// abundant odd number = sum of proper divisors > number
  
unsigned SumOddNumberProperDivisors(const unsigned num) {
    unsigned sum = 1;
  
    for (unsigned i = 3, j; i < sqrt(num) + 1; i += 2)
        if (num % i == 0)
            sum += i + (i == (j = num / i) ? 0 : j);
  
    return sum;
}
  
int main()
{
    unsigned num = 1000000001;
  
    for (;; num += 2) {
        if (SumOddNumberProperDivisors(num) > num) {
            break;
        }
    }
     
    std::cout << num;
}
  
  
  
  
/*
run:
  
1000000575
  
*/

 



answered Oct 23, 2022 by avibootz
edited Oct 30, 2022 by avibootz

Related questions

1 answer 113 views
1 answer 125 views
1 answer 101 views
1 answer 107 views
...