challenges

my solutions to various "programming challenge" problems
git clone https://wehaveforgeathome.hates.computer/challenges.git
Log | Files | Refs | LICENSE

level2.pl (555B)


      1 #!/usr/bin/perl
      2 
      3 use strict;
      4 use warnings;
      5 
      6 sub isPrime {
      7   my $n = shift;
      8   return 0 if ($n % 2 == 0);
      9   for (my $i = 3; $i < sqrt($n); $i += 2) {
     10     return 0 if ($n % $i == 0);
     11   }
     12   return 1;
     13 }
     14 
     15 my $nminus2 = 1;
     16 my $nminus1 = 1;
     17 my $n = 2;
     18 
     19 until ($n > 227000 && isPrime($n)) {
     20   $nminus2 = $nminus1;
     21   $nminus1 = $n;
     22   $n = $nminus2 + $nminus1;
     23 }
     24 
     25 print "X: $n\n";
     26 
     27 my $m = $n + 1;
     28 
     29 # P + 1 % 2 == 0 for all P > 2
     30 my $sum = 2;
     31 for (my $i = 3; $i < sqrt($m); $i += 2) {
     32   if ($m % $i == 0 && isPrime($i)) {
     33     $sum += $i;
     34   }
     35 }
     36 
     37 print "sum: $sum\n";