aboutsummaryrefslogtreecommitdiff
path: root/challenge-252/barroff/raku/ch-1.p6
blob: 5ab3457b47125f36c2c9e36e7620138b9de3c316 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env raku

use v6.d;

sub special-numbers(@ints --> Int:D) {
    sum(map({ @ints[$_ - 1] ** 2 }, grep({ @ints.elems % $_ == 0 }, 1..@ints.elems)));
}

#| Run test cases
multi sub MAIN('test') {
    use Test;
    plan 2;

    is special-numbers((1, 2, 3, 4)), 21, 'works for (1, 2, 3, 4)';
    is special-numbers((2, 7, 1, 19, 18, 3)), 63, 'works for (2, 7, 1, 19, 18, 3)';
}

#| Take user provided list like 1 2 10
multi sub MAIN(*@s) {
    say special-numbers(@s);
}