Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
Turbo Delphi für Win32
|
Delphi errechnet keine Primzahlen größer als 5000
12. Dez 2012, 17:30
Hallo ich habe folgendes Prgramm programmiert
Delphi-Quellcode:
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm5 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
Max :integer;
Primzahlen : array of Integer;
Anzahl : Integer;
Wert : Integer;
Primzahl : Boolean;
end;
var
Form5: TForm5;
I,X,F : Integer;
XC : String ;
implementation
{$R *.dfm}
procedure TForm5.Button1Click(Sender: TObject);
var
E: TObject;
begin
max := strtoint(edit1.Text);
repeat
inc(I);
if not (I=0) and not (I=1) then
begin
Wert := I-1;
if Wert <>1 then
begin
Primzahl := true;
for F := 2 to Wert do
begin
if I mod F = 0 then
begin
Primzahl := false;
end;
end;
if Primzahl then
begin
setlength(Primzahlen,Anzahl+1);
Primzahlen[Anzahl] := I;
Anzahl := Anzahl +1;
end;
end;
end;
until I = Max ;
for X := 0 to Anzahl do
begin
XC := XC + ' , '+inttostr(Primzahlen[X]);
end;
showmessage(XC);
end;
procedure TForm5.FormCreate(Sender: TObject);
begin
Anzahl := 0;
I := 0;
Wert := 0;
F := 0;
end;
end.
Wenn man einen größeren Wert als 5000 ein gibt fängt delphi einfach noch mal von vorne an mit dem rechnen. Warum?
|
|
Zitat
|