#include <stdio.h>
#include <math.h>
unsigned SumNumberProperDivisors(const unsigned num) {
unsigned sum = 0;
for (unsigned i = 1, j; i <= sqrt(num); i++) {
if (num % i == 0) {
sum += i + (i == (j = num / i) ? 0 : j);
}
}
return sum - num;
}
int main()
{
unsigned int num = 24;
unsigned int sum = SumNumberProperDivisors(num);
printf("num = %d sum = %d abundant = %s\n", num, sum, sum > num ? "true" : "false");
num = 21;
sum = SumNumberProperDivisors(num);
printf("num = %d sum = %d abundant = %s\n", num, sum, sum > num ? "true" : "false");
return 0;
}
/*
run:
num = 24 sum = 36 abundant = true
num = 21 sum = 11 abundant = false
*/