Вычисление наименьшего общего делителя (НОД) с помощью алгоритма Евклида используя рекурсию

code: #perl
  1. #!/usr/bin/perl
  2. use warnings;
  3.  
  4. sub gcd
  5. {
  6.     my ($x, $y)=@_;
  7.     return $y unless $x;   
  8.     return ($x>=$y)? gcd($x-$y, $y): gcd($x, $y-$x);
  9. }
  10.  
  11. my $gcd=shift;
  12.  
  13. while(@ARGV)
  14. {
  15.     $gcd=gcd($gcd, shift);
  16. }
  17.  
  18. print "$gcd\n";
Поделиться:

Похожие статьи: