Pular para o conteúdo

Crivo de Eratóstenes Simples em 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.
Perfil removido removido
Hits: 8.376 Categoria: Java Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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.
Download sieve001.java Enviar nova versão

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 ();

   }

}

Diferenca entre meses - um método de busca simples

Cadastramento de Produtos com .JOptionPane

RatingSistemaElo.java

Imagem de Background atravez de um JDesktopPane

Planilha de cálculo para multa judicial

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.