XavierAramayo,
Cita:
|
Empezado por XavierAramayo
...ingresar un número n y que me mostrase los n primeros números primos...
|
¡Bienvenido al Club Delphi!
Revisa este código:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function GeneratorNumberPrime(Limit : Integer) : TStringList;
var
n,i,c : Integer;
rn : integer;
NumberPrime : TStringList;
Prime : Boolean;
begin
n := 3;
NumberPrime := TStringList.Create;
NumberPrime.Add('1');
NumberPrime.Add('2');
c := 0;
While (c <= Limit - 3) do
begin
Prime := True;
rn := Trunc(sqrt(n));
for i := 2 to rn do
begin
if (n mod i) = 0 then
begin
Prime := False;
break;
end;
end;
if Prime then
begin
NumberPrime.Add(IntToStr(n));
Inc(c);
end;
Inc(n,2);
end;
Result := TStringList.Create;
Result.Assign(NumberPrime);
NumberPrime.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Limit : Integer;
begin
Limit := StrToIntDef(Edit1.Text,10);
ListBox1.Items.Assign(GeneratorNumberPrime(Limit));
end;
end.
El código anterior
genera n números primos dado un número límite de la función generatriz, como se muestra en la siguiente imagen:
El ejemplo esta disponible en el link:
http://terawiki.clubdelphi.com/Delph...mber+Prime.rar
Espero sea útil
Nelson.