Cálculo do MDC em Perl para quantidade ilimitada de parâmetros
... 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.
Algoritmo euclidiano simples para cálculo de MDC. Recebe uma quantidade indefinida de números para o cálculo.
Descrição
... 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.
Algoritmo euclidiano simples para cálculo de MDC. Recebe uma quantidade indefinida de números para o cálculo.
#!/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";