#include <stdio.h>
#include <stdlib.h>

int
sum_of_divisors (int n)
{
    int sum = 1;
    
    for (int i = 2; i <= n - 1; i++) {
        if (n % i == 0) {
            sum += i;
        }
    }
    return sum;
}

int
main (int argc, char *argv[])
{
    if (argc < 2) {
        fprintf (stderr, "%s: ERROR, need at least one number "
                 "as a command line argument\n", argv[0]);
        exit (1);
    }

    for (int i = 1; i < argc; i++) {
        int n = atoi (argv[i]);
        int curr = -1;
        int steps = 0;
        printf ("Start: %d\n", n);

        while (1) {
            curr = sum_of_divisors (n);
            printf ("%d\n", curr);
            if (n == curr) {
                break;
            }
            n  = curr;
            steps ++;
        }
        
        printf ("Steps: %d\n", steps);
    }
}
