Matt Owen

source code for "files/pe/pe_046.pl"

return to portfolio
  1.  #!/usr/bin/perl
  2.  
  3.  use strict;
  4.  use warnings;
  5.  
  6.  
  7.  # file handle
  8.  open PRIMES, "primes_under_1000000.TXT";
  9.  
  10.  
  11.  # init
  12.  my %primes;
  13.  $primes{$_} = 1 for map { chomp; int $_ } grep { $_ < 10000} <PRIMES>;
  14.  
  15.  
  16.  # work
  17.  for my $c (10..10000) {
  18.   $c = 2*$c+1;
  19.   for my $p (grep { $_ <= $c } keys %primes) {
  20.  
  21.   my ($root) = sqrt(($c-$p)/2);
  22.   goto LOOP if ($root == int $root);
  23.   }
  24.   print $c, ' ';
  25.  
  26.  LOOP:
  27.  }
  28.  
  29.  
  30.  
  31.  close PRIMES;