AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Primzahlen ermitteln?

Ein Thema von Jan13490 · begonnen am 10. Mai 2007 · letzter Beitrag vom 12. Mai 2007
Antwort Antwort
Jan13490

Registriert seit: 10. Mai 2007
3 Beiträge
 
#1

Re: Primzahlen ermitteln?

  Alt 10. Mai 2007, 16:03
hier ist mein quelltext:

Delphi-Quellcode:
unit UNT_Primzahl;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TFRM_Primzahlenfinder = class(TForm)
    BTN_Rechnen: TButton;
    EDT_zeitausgabe: TEdit;
    LBL_zeitausgabe: TLabel;
    LBX_Prim: TListBox;
    LBL_Primzahlen: TLabel;
    LBL_Primzahl: TLabel;
    BTN_Close: TButton;
    EDT_UG: TEdit;
    EDT_OG: TEdit;
    LBL_UG: TLabel;
    LBL_OG: TLabel;
    procedure BTN_CloseClick(Sender: TObject);
    procedure BTN_RechnenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FRM_Primzahlenfinder: TFRM_Primzahlenfinder;

implementation

{$R *.dfm}

var zeit, uG, oG : longint;
    h,m,s,ms : word;
    sieb: array [2..1000000] of boolean;

//function teileranzahl(zahl:longint):integer;
//var teiler, partnerteiler : longint;
// anzahl : integer;
//begin
// anzahl := 2;
// teiler := 2 ;partnerteiler := zahl div teiler;
// while teiler < partnerteiler do
// begin
// if zahl mod teiler = 0 then
// anzahl := anzahl+2;
// inc(teiler); partnerteiler := zahl div teiler;
// end;
// if teiler*teiler = zahl then inc(anzahl);
// teileranzahl := anzahl;
//end;

//function prim_1(zahl:longint):boolean;
//begin
// prim_1 := teileranzahl(zahl) = 2;
//end;

procedure TFRM_Primzahlenfinder.BTN_CloseClick(Sender: TObject);
begin
close;
end;

procedure eratosthenes(obG:longint);
var index: longint;

procedure streiche_vielfache(i : longint); {lokal deklarierte procedure, die nur               
                                                                          in der procedure eratosthenes
                                                                          verwendet werden kann }

var k : longint;
begin
  k := i+i;
  while k <= oG do
    begin
      sieb[k] := false;
      k := k+i;
    end;
end;

begin {eratosthenes}
  for index := 2 to oG do sieb[index] := true; {initialisieren}
  index := 2;
  while index*index <= oG do
    begin
      if sieb[index] = true then streiche_vielfache(index);
      inc(index);
    end;
end; {eratosthenes}



procedure TFRM_Primzahlenfinder.BTN_RechnenClick(Sender: TObject);
var //zahl, teiler : integer;
    uG, oG, index : longint;
begin
decodetime(time,h,m,s,ms);
zeit := 1000*(3600*h+60*m+s)+ms;
LBX_Prim.Items.clear;
uG := strtoint(EDT_UG.Text);
oG := strtoint(EDT_OG.Text);

eratosthenes(oG);
for index := uG to oG do
if sieb[index] = true then ;
LBX_Prim.Items.add(inttostr(index));

decodetime(time,h,m,s,ms);
zeit := 1000*(3600*h+60*m+s)+ms-zeit;
EDT_zeitausgabe.text := inttostr(zeit);
end;

end.
[edit=Matze]Code in Delphi-Tags eingefasst. Das nächste Mal bitte selbst machen. Mfg, Matze[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz