Finding abundant numbers from 1 to 10 million using a sum my task is to implement algorithm in C of finding abudant numbers from 1 to 10 million. Fistly I don't really understand mathematics.
There is several ways how to do it, but efficient and fast (for that BIG input 10 mil) might be by summing - NOT dividing, NOT multiplying, NOT EVEN using remainder after the division. Just sum.
But I'm really confused WHAT to sum. Please guys help, appreciate every single answer.

The following naive sieve approach takes only 30 seconds on my modest PC.
#define abLimit 10000000
int i, j, *xp;

xp = (int*) calloc(abLimit, 4);

for (i=2; i<abLimit, i++)
    for (j=i*2; j<abLimit; j+= i)
        xp[j] += i;

for (i=2; i<abLimit; i++)
    if (xp[i] > i)
        printf("%d is abundant\n", i);

free(xp);

Basically, it builds a table of $\sigma(n)$. It does not require any factorisation into primes, which makes it quick. I suggest you dry run it for a small value of abLimit to see what it's doing. Some pruning may reduce the run-time to under a second.
