aboutsummaryrefslogtreecommitdiff
path: root/challenge-022
diff options
context:
space:
mode:
authorRoger Bell_West <roger@firedrake.org>2019-08-22 13:57:42 +0100
committerRoger Bell_West <roger@firedrake.org>2019-08-22 13:57:42 +0100
commitfadd7624ccfea612447ecaf36ddf077f2f71d61f (patch)
tree89ee66bd7573bb0f1681eb01dab21164788a26b5 /challenge-022
parent5fc80ca35a61b7e84529f422ba4101ed3aae9e70 (diff)
downloadperlweeklychallenge-club-fadd7624ccfea612447ecaf36ddf077f2f71d61f.tar.gz
perlweeklychallenge-club-fadd7624ccfea612447ecaf36ddf077f2f71d61f.tar.bz2
perlweeklychallenge-club-fadd7624ccfea612447ecaf36ddf077f2f71d61f.zip
Challenge 22 part 1
Diffstat (limited to 'challenge-022')
-rwxr-xr-xchallenge-022/roger-bell-west/perl5/ch-1.pl28
-rwxr-xr-xchallenge-022/roger-bell-west/perl6/ch-1.p616
2 files changed, 44 insertions, 0 deletions
diff --git a/challenge-022/roger-bell-west/perl5/ch-1.pl b/challenge-022/roger-bell-west/perl5/ch-1.pl
new file mode 100755
index 0000000000..9f1f55566e
--- /dev/null
+++ b/challenge-022/roger-bell-west/perl5/ch-1.pl
@@ -0,0 +1,28 @@
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+
+# Arbitrary cap
+my $cap=110;
+
+my $limit=6;
+
+# Sieve of Eratosthenes to give us a prime list
+my %n=map {$_ => 1} (2..$cap);
+foreach my $f (2..int(sqrt($cap))) {
+ map {($f<$_ && $_%$f == 0)?delete $n{$_}:0} keys %n;
+}
+my @p=sort {$a <=> $b} (keys %n);
+my %p=map {$_ => 1} @p;
+
+foreach my $p (@p) {
+ my $q=$p+6;
+ if (exists $p{$q}) {
+ print "$p, $q\n";
+ $limit--;
+ unless ($limit) {
+ last;
+ }
+ }
+}
diff --git a/challenge-022/roger-bell-west/perl6/ch-1.p6 b/challenge-022/roger-bell-west/perl6/ch-1.p6
new file mode 100755
index 0000000000..31956f6bd3
--- /dev/null
+++ b/challenge-022/roger-bell-west/perl6/ch-1.p6
@@ -0,0 +1,16 @@
+#! /usr/bin/perl6
+
+my $limit=6;
+
+for (2..Inf) -> $p {
+ if $p.is-prime {
+ my $q=$p+6;
+ if $q.is-prime {
+ say "$p, $q";
+ $limit--;
+ unless ($limit) {
+ last;
+ }
+ }
+ }
+}