Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Extreme Multimidia
Por davi182
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Andre Miguel em (última atualização em 06/01/2010)   [ 2779 hits ]

Login: uberalles, 16875 pontos

   


Descrição

Certo dia me deparei com um bottom brincalhão que dizia: "Digite qualquer número primo de 11 dígitos para continuar". Fiquei com vontade de saber se havia tal número.

Então fiz um shellzinho para testar. Primeiros 10, beleza; primeiros 100, beleza, primeiros 1000, já não estava mais tão rápido. Percebi a oportunidade de utilizar este script como benchmark de desempenho entre servidores, sejam de mesmo hardware ou não.

Quando você executar, pode demorar a aparecer alguma coisa na tela, mas ele está rodando. Pode verificar com strace ou truss (Solaris).

Após você testar e tiver a coragem de descomentar a linha do 10000000000, me poste aqui os números primos que você achou!

Dica: para temporizar a execução, utilize a linha abaixo:

$ bash primo.sh 2>&1 |egrep 'Primo|real' |awk '{if ($2 ~ /s/){split($2,minsplit,"m");min+=minsplit[1];seg+=substr($2,3,5);}else{print min,seg; print $0; min=seg=0; }}'

Você deverá ter uma saída como esta:

0 0.1
  Primo: 11
0 0.248
  Primo: 13
0 0.587
  Primo: 17

[ Download: primos.sh ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#for (( i=10000000000; i<= 999999999999; i++)); do
for (( i=10; i<= 999; i++)); do
j=$i;
  primo=0;
time cat <<-EOF
  $(for (( j=$i; j>=1; j--)); do
   if [ `echo $((i%j))` -eq 0 ]; then
      ((primo++));
          if [ $primo -gt 2 ]; then
            j=1;
          else
            if [ $primo -eq 2 ] && [ $j -eq 1 ]; then
          echo "Primo: $i";
                fi
          fi
    fi;
  done;)
EOF
done


Scripts recomendados
   Script Linux recomendado Libera conectividade social em rede com squid
   Script Linux recomendado Calculadora Shell com Yad
   Script Linux recomendado mountcp.sh
   Script Linux recomendado Mpeg 2 Converter
   Script Linux recomendado POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - FILTRO PARA CMAMAR O CLAMAV DIRETAMENTE DO POSTFIX

Comentários
[1] Comentário enviado por uberalles em 04/03/2010 - 18:48h:

Para criar a lista. Fiz do 10 ao 999:

cut -c 3- primo_10-999.out |awk 'BEGIN{print "Tempo;Primo;"} {if ($1 ~ /[0-9]/){printf $1 ";";}{if ($2 ~ /[0-9]/){print $2 ";";}}}'


[2] Comentário enviado por sebuba em 06/01/2011 - 11:53h:

Muito bom!


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.