Matt Owen

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

return to portfolio
  1.  #!/usr/bin/perl
  2.  
  3.  use strict;
  4.  use warnings;
  5.  use euler;
  6.  
  7.  
  8.  my ($k, $largest);
  9.  my ($str) = '';
  10.  
  11.  $largest = 0;
  12.  
  13.  # it must be a 4 digit number,
  14.  # because 10000*2 . 10000*3 > 9...
  15.  # and so on for everything with length > 4
  16.  # (987654321 is the largest for n >= 1 obviously... but is not legit)
  17.  for (1000..9999) {
  18.  
  19.   for ($k=1; length $str < 9; $k++) {
  20.   $str .= $_ * $k;
  21.   }
  22.  
  23.   if (int $str > $largest && euler::is_pandigital($str)) {
  24.   $largest = int $str;
  25.   print $largest, "\n";
  26.   }
  27.  
  28.   $str = '';
  29.  }
  30.  
  31.  print "\n$largest";