Tentei brincar com isso para aprender mais, mas o que fiz não funciona
para numeros muito grandes...
raiz=$(echo "sqrt($1)" | bc -q)
for i in $(seq 2 $raiz); do
if [ $(echo $1%$i | bc -q) -eq "0" ]; then exit; fi
done
echo "$1"
A ideia é testar os divisores de 2 a raiz quadrada do numero (floor) até
achar algum que divide e constatar que nao é primo. Se o numero aguentar as
divisões e não tiver um divisor ele é impresso na saida padrao. Dá pra fazer
montando uma lista com os numeros primos e ao invés de tentar os numeros
2,3,4,5,6,7,8,9,10,11,12,... ele tentaria 2,3,5,7,11,... poupando tempo de
processamento (não me recordo se existe algum meio mais eficiente...).
Não entendi bem o porque, mas quando o numero tem mais que 7 digitos
parece que ele transforma o numero em notação cientifica e arredonda... é
complicado fazer isso quando não se tem bem definido o tipo e propriedades
da variavel...
[]'s
Fernando Lemes
----- Original Message -----
From: "rettore" <address@hidden>
To: <address@hidden>
Sent: Monday, October 27, 2003 9:04 AM
Subject: [shell-script] Numeros primos
Alguem conhece algum algoritimo que verifica se o numero é primo ??
Rettore
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------
Seu uso do Yahoo! Grupos é sujeito às regras descritas em: http://br.yahoo.com/info/utos.html
------------------------------------------------------------------------------------
Esta mensagem foi verificada pelo nosso sistema de segurança e acredita-se
estar livre de vÃrus.
------------------------------------------------------------------------------------
Mail Virus Scanner - Memphis Network - www.memphisnetwork.com.br
------------------------------------------------------------------------------------