commit a17b33e4f7efc2dbba5e0d83a392c1130b146752 parent 05b0faa28b0a33f7b61e6dfa72b557b5c87b2603 Author: Ryan Wolf <rwolf@borderstylo.com> Date: Sun, 17 Oct 2010 14:53:28 -0700 completed level2 of greplin Diffstat:
| A | greplin/level2.pl | | | 37 | +++++++++++++++++++++++++++++++++++++ |
1 file changed, 37 insertions(+), 0 deletions(-)
diff --git a/greplin/level2.pl b/greplin/level2.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +sub isPrime { + my $n = shift; + return 0 if ($n % 2 == 0); + for (my $i = 3; $i < sqrt($n); $i += 2) { + return 0 if ($n % $i == 0); + } + return 1; +} + +my $nminus2 = 1; +my $nminus1 = 1; +my $n = 2; + +until ($n > 227000 && isPrime($n)) { + $nminus2 = $nminus1; + $nminus1 = $n; + $n = $nminus2 + $nminus1; +} + +print "X: $n\n"; + +my $m = $n + 1; + +# P + 1 % 2 == 0 for all P > 2 +my $sum = 2; +for (my $i = 3; $i < sqrt($m); $i += 2) { + if ($m % $i == 0 && isPrime($i)) { + $sum += $i; + } +} + +print "sum: $sum\n";