diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-03-15 22:50:55 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-15 22:50:55 +0000 |
| commit | 157dde692ffe557ed8359b94bb2ad8c83b44360e (patch) | |
| tree | 7eaacb9497428d5959b9a5f6f62aae767637bee2 | |
| parent | 77fa793c1769f520663db912c463afcac9392fc7 (diff) | |
| parent | e4dd63ce924a5440a23ebff642e08e27793cc0af (diff) | |
| download | perlweeklychallenge-club-157dde692ffe557ed8359b94bb2ad8c83b44360e.tar.gz perlweeklychallenge-club-157dde692ffe557ed8359b94bb2ad8c83b44360e.tar.bz2 perlweeklychallenge-club-157dde692ffe557ed8359b94bb2ad8c83b44360e.zip | |
Merge pull request #5783 from andemark/branch-for-challenge-156
Branch for challenge 156
| -rw-r--r-- | challenge-156/mark-anderson/raku/ch-1.raku | 10 | ||||
| -rw-r--r-- | challenge-156/mark-anderson/raku/ch-2.raku | 38 |
2 files changed, 48 insertions, 0 deletions
diff --git a/challenge-156/mark-anderson/raku/ch-1.raku b/challenge-156/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..9d83cfd997 --- /dev/null +++ b/challenge-156/mark-anderson/raku/ch-1.raku @@ -0,0 +1,10 @@ +#!/usr/bin/env raku + +use Test; + +is-deeply (1..*).grep(&pernicious).head(10), (3, 5, 6, 7, 9, 10, 11, 12, 13, 14); + +sub pernicious($n) +{ + $n.base(2).comb.sum.is-prime +} diff --git a/challenge-156/mark-anderson/raku/ch-2.raku b/challenge-156/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..086f163102 --- /dev/null +++ b/challenge-156/mark-anderson/raku/ch-2.raku @@ -0,0 +1,38 @@ +#!/usr/bin/env raku + +use Test; +use Prime::Factor; + +nok weird(12); +nok weird(360); +nok weird(420); + +ok weird(70); +ok weird(836); +ok weird(7192); +ok weird(10792); +ok weird(12670); +ok weird(14770); + +sub weird($n) +{ + my @p = proper-divisors($n); + return 0 if @p.sum <= $n; + return + not subset-sum($n, @p); +} + +sub subset-sum($sum, @n) +{ + my @a = 1, |(0 xx $sum); + @a[@n.head] = 1; + + for @n.skip -> $n + { + for ($n..$sum).reverse -> $i + { + @a[$i] = @a[$i-$n] unless @a[$i] + } + } + + @a.tail +} |
