aboutsummaryrefslogtreecommitdiff
path: root/challenge-109/abigail/awk/ch-1.awk
blob: 203c7f1fece1d30bd398e3c64ffec488b97a0515 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/awk

#
# See ../README.md
#

#
# Run as: awk -f ch-1.awk [plain | compute]
#

function divisor_sum (n, i) {
    sum = 0
    for (i = 2; i <= n / 2; i ++) {
        if (n % i == 0) {
            sum += i
        }
    }
    return (sum)
}

BEGIN {
    COUNT = 20
    if (!ARGV [1] || ARGV [1] != "compute") {
        print "0, 0, 0, 2, 0, 5, 0, 6, 3, 7, 0, 15, 0, 9, 8, 14, 0, 20, 0, 21"
    }
    else {
        for (i = 1; i <= COUNT; i ++) {
            if (i > 1) {
                printf ", ";
            }
            printf "%d", divisor_sum(i)
        }
        printf "\n";
    }
    delete ARGV
}