Algoritmo de Euclides estendido em Perl
Publicado por Perfil removido (última atualização em 12/04/2013)
[ Hits: 3.679 ]
Para economizar explicações, relembrando criptografia de chave assimétrica com este artigo: http://www.vivaolinux.com.br/artigo/Criptografia-assimetrica-com-o-RSA?pagina=4 bem na página que mais interessa neste momento.
Parte do problema consiste em:
"Dado dois números inteiros positivos E e N, encontre um terceiro inteiro positivo D de tal modo que E vezes D quando dividido por N dê resto 1."
É a proposta desse código.
#!/usr/bin/perl =pod 0 1 101 29 3 1 0 29 14 2 -3 1 14 1 14 7 -2 dispensa calculo da segunda coluna =cut use warnings; use strict; sub gcd_ext { my @n=(0, shift, shift); my @d1=(1, 0); # my @d2=(0, 1); my @q = (0); while ($n[-1]!=0) { push (@n,$n[-2]%$n[-1]); push (@q,($n[-3]-$n[-1])/$n[-2]); push (@d1,$d1[-2]-$q[-1]*$d1[-1]); # push (@d2,$d2[-2]-$q[-1]*$d2[-1]); } return ($d1[-2]<0?$n[2]+$d1[-2]:$d1[-2]); } my $x = 29; my $y = 101; my $z = gcd_ext($x,$y); print "$x * x = 1 (mod $y)\n"; print "$x . $z dividido por $y tem resto 1.\n"
Testando a agilidade do sistema de arquivos
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta