summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2009-05-16 13:18:59 -0500
committerJesse Luehrs <doy@tozt.net>2009-05-16 13:18:59 -0500
commitf00ed31e63ba99d4b62d7b16e3a04f470bc085bb (patch)
tree18173a4406bc4f7c633c3933cc058b0b2815972c
parent4c97262a413394e77cc929e97935bc6ac8a5372e (diff)
downloadprojecteuler-f00ed31e63ba99d4b62d7b16e3a04f470bc085bb.tar.gz
projecteuler-f00ed31e63ba99d4b62d7b16e3a04f470bc085bb.zip
solution for 49
-rwxr-xr-x049.pl19
1 files changed, 19 insertions, 0 deletions
diff --git a/049.pl b/049.pl
new file mode 100755
index 0000000..10d714f
--- /dev/null
+++ b/049.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Math::Prime::XS qw/sieve_primes is_prime/;
+
+my @possibilities = sieve_primes(1000,9999);
+my %primes = map { $_, 1 } @possibilities;
+
+PRIME: for my $prime (@possibilities) {
+ for my $inc (2..4500) {
+ my ($prime2, $prime3) = ($prime + $inc, $prime + $inc + $inc);
+ next PRIME if $prime3 > 9999;
+ next unless $primes{$prime2} && $primes{$prime3};
+ my @sort = map { join '', sort split //, $_ } $prime, $prime2, $prime3;
+ if ($sort[0] eq $sort[1] && $sort[0] eq $sort[2]) {
+ print "$prime$prime2$prime3\n";
+ }
+ }
+}