Calculador de números primos

Publicado por Jonathan Luquesi de Medeiros 04/05/2007 (última atualização em 01/09/2014)

[ Hits: 21.049 ]

Download numeros_primos.sh

Download numeros_primos.sh (versão 2)




Esse script calcula se um numero é ou não primo...

Sugestões e críticas sobre o script são muito bem vindas... Ainda estou aprendendo.

  



Versões atualizadas deste script

Versão 2 - Enviado por Vitor Augusto M. Pio em 27/08/2014

Changelog: - Método de confirmação se o núemro é primo alterado. Contar do 2 até a raiz do número, isto torna o programa mais rápido na execução.
- Ultilizei um flag.

Download numeros_primos.sh


Esconder código-fonte

#!/bin/bash
clear
echo "Programa para calcular numeros primos"
echo "Digite o numero que deseja calcular"
read N
S=2
R=0

while [ $S -ne $N ] ; do
        R=$(expr $N % $S)
        if [ $R -ne 0 ] ; then
                S=$(($S+1))
        else
                clear
                echo "O numero" $N "nao eh primo"
                echo "Digite Ctrl+c, para interromper!"
                sleep 10
        fi
done
if [ $S -eq $N ] ; then
        clear ; echo "O numero" $N "eh primo"
fi

Scripts recomendados

Instalação do Gentoo - Parte 1

S-phoenix desliga/reinicia, quantos estão logado no PC, tempo ligado

Script inicar o vncserver

Shell Script - para configurações de Vlans Cisco.

Exclusão de arquivos em massa por data


  

Comentários
[1] Comentário enviado por sfonseca em 11/05/2007 - 13:50h

Jonathan, o script não tá atendendo a condição qdo o número informado for 1. O que deve ser alterado para resolver isso?

[2] Comentário enviado por jhoumedeiros em 22/06/2007 - 16:13h

Os numeros primos começam pelo 2... mais td bem
deixe o codigo assim....
#!/bin/bash
clear
echo "Programa para calcular numeros primos"
N=1
while [ $N -eq 1 ] ; do
echo "Digite o numero que deseja calcular"
read N
done
S=2
R=0

while [ $S -ne $N ] ; do
R=$(expr $N % $S)
if [ $R -ne 0 ] ; then
S=$(($S+1))
else
clear
echo "O numero" $N "nao eh primo"
echo "Digite Ctrl+c, para interromper!"
sleep 10
fi
done
if [ $S -eq $N ] ; then
clear ; echo "O numero" $N "eh primo"
fi


OBS: Nao se esqueça de identar o echo dentro do 1º while

[3] Comentário enviado por rafaelfatepi em 13/06/2009 - 02:05h

Olá amigo como faço para imprimir todos numeros primos entre 60000 e 63000.

Grato!!!

[4] Comentário enviado por andrecpe em 23/06/2010 - 15:18h

Bem, para achar números primos em qualquer quantidade usar:

seq 99999 | factor | awk -F \: '$1 == $2{ print $1}' | column -x

Para encontrar números primos entre 1 e 99999


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts