Crivo de Eratóstenes Simples em Java

Publicado por Perfil removido (última atualização em 30/07/2012)

[ Hits: 7.919 ]

Download sieve001.java




Versão do crivo em Java.

Procurou-se usar algo que permitisse uma capacidade melhor e maior de armazenamento dos números encontrados usando recursos próprios e particulares desta linguagem.

A classe sieve001 foi criada com inicial lowercase para manter o padrão com o nome dos outros arquivos já publicados.

Pode-se substitui o 23.0 do Math.pow(2.0, 23.0) - 1 por um número maior a fim de se tabular um conjunto maior.

Para Math.pow(2.0, 31.0) - 1 a demora é absurda.

As variáveis foram nomeadas de forma abusiva, particularmente uma notação "austroHungara" sem os agravantes.

  



Esconder código-fonte

import java.lang.String;
import java.lang.Long;
import java.util.ArrayList;

public class sieve001 {

   static final long longLimit = (long) Math.pow(2.0, 23.0) - 1;

   public static void main(String args[]) {

      ArrayList<Long> longPrimes = new ArrayList<Long>();

      long longNumber=5;
      int intNext=0, intIndex=0;
      double doubleSquareRoot=0.0;

      longPrimes.add(new Long(2));
      longPrimes.add(new Long(3));

      do {

         intNext = 0;
         doubleSquareRoot = Math.sqrt(longNumber);

         while ((double) longPrimes.get(++intNext)<doubleSquareRoot && (longNumber%longPrimes.get(intNext))!=0);

         if ((double) longPrimes.get(intNext)>doubleSquareRoot) longPrimes.add(new Long(longNumber));

         longNumber+=((longNumber%3==2)?2:4);

      } while (longNumber<longLimit);

      for (intIndex=0; intIndex<longPrimes.size(); intIndex++) System.out.print (String.valueOf(longPrimes.get(intIndex)) + " ");

      System.out.println ();

   }

}

Scripts recomendados

Cálculo de número de anos baseado em data

Avaliação de expressões matemáticas

Planilha de cálculo para multa judicial

Torre de Hanoi

Login gráfico em java


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts