[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: código-fonte aberto



On Tue, 18 May 1999, Benjamin Hinrichs wrote:

> Oi pessoal (especialmente o Saldanha que começou a publicar código-fonte de
> seus programas)
> 
> Devido a concorrência do meu amigo Saldanha na programação, terei de dar a
> tacada de volta, abro portanto o código-fonte mais esperado do ano: cálculo
> se um número é primo e se não, qual sua decomposição em primos (código para
> visual basic 5, não testado em outras versões do vb. Direito de cópia
> permanece com o autor ... blábláblá)

Eu nunca usei vb, de modo que não entendi muito bem seu programa
mas parece ser o algoritmo usual de tentar dividir o candidato
a primo por vários possíveis divisores, certo? Aliás, ele é capaz de
fatorar inteiros grandes, como por exemplo 4587239457234985792348579847?
(Dica: este número é o produto de dois primos, o menor deles com 8
algarismos.)

Um bom programa de fatoração vem no giantint, que eu já mencionei antes.
Mas observe que em geral é muito mais difícil fatorar do que testar
a primalidade de um inteiro. Muitos programas/algoritmos de criptografia
baseiam-se nesta assimetria: você produz secretamente dois primos (p,q) de
uns 100 ou 200 algarismos, multiplica os dois e torna público o
produto n=pq. Enquanto você for o único a conhecer a fatoração de n,
há um sistema simples pelo qual outras pessoas podem encodificar mensagens
de tal forma que só você saberá lê-las.

Acho que o Gugu não se incomodará se eu sugerir que você (e também os
outros da lista) dêem uma olhada no nosso livro do colóquio
*ainda incompleto* em
http://www.mat.puc-rio.br/~nicolau/qwerty/mersenne.
Este endereço estranho é para manter uma certa privacidade
sobre um trabalho em andamento. Olhe especialmente no terceiro capítulo
a primeira seção (fórmulas para primos e testes de primalidade). 

>         If InStr(XCopy, ",") = 0 Then

Você está verificando se a divisão foi exata procurando uma vírgula na
resposta??? Bem, talvez eu simplesmente não entenda este código vb.

> Como podes ver, Saldanha, tenho lá umas cartas na manga. Aliás, obrigado
> pela dica do MuPAD, tem me ajudado bastante. Infelizmente não mexo com C,
> ainda.

Sim, o MuPAD é bom. O Maple também, mas este não pode ser usado de graça.
Outro programa matemático gratuito e aberto é o octave, mas este eu nunca
usei muito.

[]s, N.
http://www.mat.puc-rio.br/~nicolau