From c4d805cf0d1c3463cfa8ae44fa0f686960705bd3 Mon Sep 17 00:00:00 2001 From: Jörg Sommrey <28217714+jo-37@users.noreply.github.com> Date: Mon, 28 Mar 2022 16:04:17 +0200 Subject: Solution to task 1 --- challenge-158/jo-37/perl/ch-1.pl | 80 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100755 challenge-158/jo-37/perl/ch-1.pl diff --git a/challenge-158/jo-37/perl/ch-1.pl b/challenge-158/jo-37/perl/ch-1.pl new file mode 100755 index 0000000000..e1e5db054f --- /dev/null +++ b/challenge-158/jo-37/perl/ch-1.pl @@ -0,0 +1,80 @@ +#!/usr/bin/perl -s + +use v5.16; +use Test2::V0; +use Math::Prime::Util qw(prime_iterator is_prime vecsum todigits); +use Coro::Generator; +use Syntax::Keyword::Gather; +use experimental 'signatures'; + +our ($tests, $examples, $base); +$base ||= 10; + +run_tests() if $tests || $examples; # does not return + +die <(), $base; + } + }; + + # Collect all additive primes below the given limit. + gather { + my $ap; + take $ap while ($ap = $ap_i->()) < $limit; + }; +} + + +### Examples and tests + +sub run_tests { + SKIP: { + skip "examples" unless $examples; + + is scalar additive_primes_below(100), + [2, 3, 5, 7, 11, 23, 29, 41, 43, 47, 61, 67, 83, 89], + 'task 1'; + } + + SKIP: { + skip "tests" unless $tests; + + is scalar additive_primes_below(32, 2), + [3, 5, 7, 11, 13, 17, 19, 31], + 'pernicious primes'; + } + + done_testing; + exit; +} -- cgit