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.720 ]

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

Lista de números aleatórios não-repetidos de um intervalo em Perl

Xshot

Scalar - Alguns dos usos mais comuns deste tipo de variável do Perl

triangulo

Fatorial


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts