[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Teste Matematico em shell
From: |
Humberto Pereira |
Subject: |
Re: [shell-script] Teste Matematico em shell |
Date: |
Mon, 24 Oct 2005 10:37:31 -0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050923 Debian/1.7.12-0ubuntu05.04 |
Caro Ivan,
na verdade, um numero nao eh divisivel por qquer numero inteiro, desde
q ele nao seja divisivel por qquer inteiro menor ou igual a raiz
quadrada dele. E ainda, vc nao precisa testar com o numeros pares,
apenas o numero 2 eh primo.
Logo, dah p/ se otimizar + ainda.
#!/bin/sh
[ "$1" ] || { echo "usage: $0 number" ; exit 1 ; }
raiz=`echo "sqrt($1)" | bc`
if [ "$1" != "2" ]; then
for ((i=3; i <= $raiz ; i += 2));do
[ $(( $1 % $i )) -eq 0 ] && { echo "nao, $1 nao eh primo" ; exit 0 ; }
done
fi
echo "sim, $1 eh primo"
Ivan lopes wrote:
> optimizado :
> -----------------
> #!/bin/bash
> [ "$1" ] || { echo "usage: $0 number" ; exit 1 ; }
> for ((i=2; i < $1 / 2 + 1 ; i++));do
> [ $(( $1 % $i )) -eq 0 ] && { echo "nao, $1 nao eh primo" ; exit 0 ; }
> done
> echo "sim, $1 eh primo"
>
>
> A definicao de primo diz que primo eh
> o número que é dividido somente por 1 e ele mesmo.
> *sendo 1 primo
>
> para tanto basta que nosso algoritmo divida o numero em questao por
> 2 até ele mesmo, e caso seja divisível(mod 0), teremos que o número nao
> eh primo e em caso comtrário seria primo.
>
> logo um algoritmo da forma O(n) resolveria nosso problema.
>
> para tanto amigos nenhum número é divisívem pela sua metade +1, ou seja
> 45 nao é divisível por 22 +1.
> logo o laco muda para
> for ((i=2; i < $1 / 2 + 1 ; i++));do
>
> diminuindo o número de interacoes de 2n para n.
>
> mas como O(2n)==O(n), deu na mesma ...
>
>
> --
> [ ]'s
> Ivan Carlos Da Silva Lopes
>
> Engenheiro Eletronico e Computacao
> UFRJ
>
>
> ---------------------------------------------------------------------
> 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.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
- Re: [shell-script] shell: alterar data em comando SQL, (continued)
- Re: [shell-script] shell: alterar data em comando SQL, Reinaldo Carvalho, 2005/10/20
- Re: [shell-script] shell: alterar data em comando SQL, Fabricio Lopes de Souza, 2005/10/21
- Re: [shell-script] shell: alterar data em comando SQL, Humberto Pereira, 2005/10/21
- Teste Matematico em shell, Reinaldo Marques de Lima, 2005/10/21
- RE: [shell-script] Teste Matematico em shell, MrBiTs, 2005/10/21
- Re: [shell-script] Teste Matematico em shell, Victor Leonardo, 2005/10/21
- Re: [shell-script] Teste Matematico em shell, Victor Leonardo, 2005/10/21
- Re: [shell-script] Teste Matematico em shell, Tiago Barcellos Peczenyj, 2005/10/21
- Re: [shell-script] Teste Matematico em shell, Victor Leonardo, 2005/10/21
- Re: [shell-script] Teste Matematico em shell, Ivan lopes, 2005/10/22
- Re: [shell-script] Teste Matematico em shell,
Humberto Pereira <=
- Re: [shell-script] shell: alterar data em comando SQL, Fabricio Lopes de Souza, 2005/10/21
- Re: [shell-script] shell: alterar data em comando SQL, Humberto Pereira, 2005/10/21
- Re: [shell-script] shell: alterar data em comando SQL, R.Pazetto, 2005/10/21