Einzelnen Beitrag anzeigen

fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#1

Delphi errechnet keine Primzahlen größer als 5000

  Alt 12. Dez 2012, 16: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?
  Mit Zitat antworten Zitat