Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #15  
Antiguo 11-10-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Club Delphi,

Continuación del Msg #3:

Revisen este código:
Código Delphi [-]
program GeneratorPrimeNumbers;

{

Cálculo de Números Primos por el Algoritmo: Criba de Eratóstenes
  
Esta implementación permite calcular un máximo de 87.647.246 Números Primos en un tiempo de
00:02:41:663 sobre una máquina con un Procesador Phenom II X6 1090T a 3.2 GHZ, 4 GB RAM, 3 TB HDD y
OS Windows 7 Profesional x32.
  
El tiempo indicado es el tiempo total del proceso desde que inicia el cálculo hasta que se genera
el archivo de 953 MB con los 87.647.246 Números Primos.

}

uses
   SysUtils, Classes, Dialogs;

var
   Limit, i, j: Integer;
   Numbers: TBits;
   F : TextFile;
   NumberPrime : Integer;
   TI, TF: TDateTime;

begin

   repeat
      try
         Limit := StrToInt(InputBox('Generador de Números Primos', 'Número Primo Máximo a Calcular:', '1000'));
      except
         Limit := 0;
      end;
   until (Limit >= 2) and (Limit <= 2147483615);

   TI := Now;

   Numbers := TBits.Create;

   try

      Numbers.Size := Limit;
      NumberPrime := 0;

      for i := 2 to Limit do
         if not Numbers[i] then
         begin
            j := i * i;
            while (j <= Limit) and (j > 0) do
            begin
               Numbers[j] := True;
               Inc(j, i);
            end;
         end;

      FileMode := fmOpenWrite;
      AssignFile(F, 'NumberPrime.txt');
      Rewrite(F);

      for i := 2 to Limit do
         if not Numbers[i] then
         begin
            Writeln(F, i);
            Inc(NumberPrime);
         end;

   finally

      Numbers.Free;
      CloseFile(F);

   end;

   TF := Now - TI;

   Showmessage(Format('Se Generaron %d números primos en %s',[NumberPrime,FormatDateTime('hh:mm:ss:zzz', TF)]));

end.
El código anterior permite hallar todos los números primos menores que un número natural n en el rango de 2 a 2.147.483.615, por medio del algoritmo de Eratóstenes.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 11-10-2013 a las 08:02:14.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
11 millones de números primos ixMike La Taberna 15 06-10-2013 00:00:37
Suma de dígitos primos - Simplificar código Subliminalz Varios 3 12-06-2013 00:00:22
Ayuda con numeros primos Jcn Varios 4 28-05-2013 01:39:20
Como obtengo numeros primos ? llSnakell Varios 13 05-10-2011 03:56:09
Promedio.. digitos primos .. luisito2011 Varios 3 07-05-2011 02:54:02


La franja horaria es GMT +2. Ahora son las 15:07:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi