diff options
| author | Simon Proctor <simon.proctor@zoopla.co.uk> | 2020-09-01 09:56:21 +0100 |
|---|---|---|
| committer | Simon Proctor <simon.proctor@zoopla.co.uk> | 2020-09-01 09:56:21 +0100 |
| commit | afc79dd7b7763eb827655fa1dd91b04360b09dc1 (patch) | |
| tree | 58c115e1f9d51efbcb01d2fde428624a0fc60239 | |
| parent | ad406a41ba208abc5a47817fc4091d337fbb8e7d (diff) | |
| download | perlweeklychallenge-club-afc79dd7b7763eb827655fa1dd91b04360b09dc1.tar.gz perlweeklychallenge-club-afc79dd7b7763eb827655fa1dd91b04360b09dc1.tar.bz2 perlweeklychallenge-club-afc79dd7b7763eb827655fa1dd91b04360b09dc1.zip | |
Prime number stuff
| -rw-r--r-- | challenge-076/simon-proctor/raku/ch-1.raku | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/challenge-076/simon-proctor/raku/ch-1.raku b/challenge-076/simon-proctor/raku/ch-1.raku new file mode 100644 index 0000000000..f9e5fb08ee --- /dev/null +++ b/challenge-076/simon-proctor/raku/ch-1.raku @@ -0,0 +1,23 @@ +#!/usr/bin/env raku + +use v6; + +my %*SUB-MAIN-OPTS = :named-anywhere; + +#| Find 2 prime numbers greater than 1 that add up to the target number +sub MAIN ( + UInt $n where * >= 4, #= Target number (must be 4 or greater) + Bool :a(:$all) = False #= Print all possible combinations +) { + my @primes = (2..$n-1).grep(*.is-prime); + for @primes.reverse -> $large { + next unless $large + any(@primes) == $n; + exit if $large < $n / 2; + for @primes -> $small { + if $large + $small == $n { + say "$large + $small = $n"; + exit unless $all; + } + } + } +} |
