XavierAramayo,,
Continuación del Msg #2:
Cita:
Empezado por Wikipedia:
En matemáticas, un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: él mismo y el 1. Los números primos se contraponen así a los compuestos, que son aquellos que tienen algún divisor natural aparte de sí mismos y del 1. El número 1, por convenio, no se considera ni primo ni compuesto.
Tomado de: http://es.wikipedia.org/wiki/N%C3%BAmero_primo
|
En función de la definición anterior, el código del
Msg #2 se redefine a continuación:
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;
Label1: TLabel;
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
NumberPrime := TStringList.Create;
c := 0;
n := 2;
repeat
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);
until (c = Limit);
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 desde el 2 hasta un máximo definido como parámetro en la función generatriz, como se muestra en la siguiente imagen:
El ejemplo esta disponible en el link:
http://terawiki.clubdelphi.com/Delph...me_Numbers.rar
Espero sea útil
Nelson.