shell-script-pt
[Top][All Lists]
Advanced

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

Re: [shell-script] Numeros primos


From: rettore
Subject: Re: [shell-script] Numeros primos
Date: Fri, 31 Oct 2003 08:19:03 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.3.1) Gecko/20030425

ola lista consegui desenvolver algo acredito talvez que seja mais eficiente que o do nosso amigo Fernando (sem recentimento, e agradeço seu esforço) mas ele é um pouco lento com numeros grandes mas funciona perfeitamente ... la vai ele esta até usando dialogs .... ficou bom ..

#!/bin/sh

dialog --backtitle 'Teste de números primos ' --sleep 5 --title 'Bem Vindo ao Teste de Mumeros Primos' --infobox '\nEste script tem a finalidade de verificar se um número é primo ou não \n\n Aluno: Rettore ' 10 40


num=$(dialog --backtitle 'Verificar se um número é primo ou não' --sleep 1 --stdout --inputbox 'Diigite o numero' 10 30 )

                if [ -z $num ]; then
                                echo "não foi digitado valores"
                else
                cont=2
                numero=`expr $num - 1`
                while [ $cont != $num ]
                do
                        val=`expr $num % $cont`

                        if [ $val -eq 0 ]; then
dialog --backtitle 'Resultado ' --sleep 5 --title 'Resultado da operação' --infobox "\n\n\n O Número $num não é primo" 10 40
                                exit
                        fi
                        cont=`expr $cont + 1`
                done

                fi
dialog --backtitle 'Resultado ' --sleep 5 --title 'Resultado da operação' --infobox "\n\n\n O Número $num é primo!! " 10 40



Valeu pessoal !!!!!!!!


Fernando Lemes da Silva escreveu:
   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
------------------------------------------------------------------------------------


------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]