Cálculo do MDC em Perl para quantidade ilimitada de parâmetros

Publicado por Perfil removido (última atualização em 09/04/2013)

[ Hits: 2.307 ]

Download gcd-002.pl




... ou para quantos couberem num dado tipo lista do Perl.

Algoritmo euclidiano simples para cálculo de MDC. Recebe uma quantidade indefinida de números para o cálculo.

  



Esconder código-fonte

#!/usr/bin/perl

use strict;
use warnings;

sub mdc {

   my @n3 = @_;

   return -1 unless (@n3);

   @n3 = sort {$b <=> $a} @n3;

   my ($n1, $n2, $tmp) = (0, 0, 0);

   $n2 = pop (@n3) while ($n2==0);

   return $n2 unless (@n3);

   while (@n3) {

      $n1 = pop (@n3);
      return 1 if ($n1==1 || $n2==1);
      next if ($n1==$n2);

      while ($n2>0) {
         $tmp = $n2;
         $n2 = $n1 % $n2;
         $n1 = $tmp;
      }
      
      $n2 = $n1;

   }

   return $tmp;

}

my @x = (20,15,0,65,125,25);
my $z = mdc(@x);

print "$z\n";

Scripts recomendados

Xshot

Crivo de Eratóstenes Simples em Perl

Calcula equação de segundo grau completa

Aprendendo a fazer equações em Perl

impares e pares


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário