Matt Owen

source code for "files/pe/euler.pm"

return to portfolio
  1.  package euler;
  2.  
  3.  
  4.  # is it 1..n pandigital?
  5.  sub is_pandigital {
  6.   my $s = join '', sort @_;
  7.   $s = join '', sort split //, $s;
  8.   return $s eq join('', 1..length $s) ? 1: 0;
  9.  }
  10.  
  11.  
  12.  # is it 0..n pandigital
  13.  sub is_0pandigital {
  14.   my $s = join '', sort @_;
  15.   $s = join '', sort split //, $s;
  16.   return $s eq join('', 0..length $s-1) ? 1: 0;
  17.  }
  18.  
  19.  # gives a pythagorean triplet... there are repeats
  20.  sub pythagorean_trip {
  21.   my ($m, $n) = @_;
  22.   return 0 if $m < 1 || $n < 1;
  23.   return (abs($m**2-$n**2), (2*$m*$n), ($m**2+$n**2));
  24.  }
  25.  
  26.  
  27.  return 1;