aboutsummaryrefslogtreecommitdiff
path: root/challenge-015
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-015')
-rw-r--r--challenge-015/simon-miner/README1
-rw-r--r--challenge-015/simon-miner/perl5/ch-1.pl22
2 files changed, 23 insertions, 0 deletions
diff --git a/challenge-015/simon-miner/README b/challenge-015/simon-miner/README
new file mode 100644
index 0000000000..cc433eaa54
--- /dev/null
+++ b/challenge-015/simon-miner/README
@@ -0,0 +1 @@
+Solutions by Simon Miner.
diff --git a/challenge-015/simon-miner/perl5/ch-1.pl b/challenge-015/simon-miner/perl5/ch-1.pl
new file mode 100644
index 0000000000..9ec6f46e52
--- /dev/null
+++ b/challenge-015/simon-miner/perl5/ch-1.pl
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+my $type = shift @ARGV || 'strong';
+my @primes = grep( { ( 1 x $_ ) !~ /^1?$|^(11+?)\1+$/ } 1 .. 101 );
+my %first_10 = (
+ strong => [],
+ weak => [],
+);
+
+print "First 10 $type prime numbers:\n";
+
+my $count = 0;
+for ( my $n = 1; $n < @primes - 1; $n++ ) {
+ my $t = ( $primes[$n] > ( $primes[$n - 1] + $primes[$n + 1] ) / 2 ) ? 'strong' : 'weak';
+ next if @{ $first_10{$t} } >= 10;
+ push( @{ $first_10{$t} }, $primes[$n] );
+ #print "#" . @{ $first_10{$t} } . ": p($n) = $primes[$n]\n" if $type eq $t;
+ printf( "%3s: %5s = %2d\n", "#" . @{ $first_10{$t} }, "p($n)", $primes[$n] ) if $type eq $t;
+}