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
Seite 1 von 3  1 23      
Jan13490

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

Primzahlen ermitteln?

  Alt 10. Mai 2007, 16:04
Hi Leute,
wollte mal ein Programm basteln, was Primzahlen finden kann.(Bin delphi anfänger)
Ich wollte es so machen, dass ich eine Kleinste und eine größte Zahl variabel eingeben kann und der PC sucht mir dann die Primzahlen zwischen den beiden Zahlen heraus.
Nur leider weiß ich überhaupt nicht wie ich das machen könnte.
Hat einer vllt sowas schon mal programmiert? Hat einer den quelltext?

Gruß jan
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#2

Re: Primzahlen ermitteln?

  Alt 10. Mai 2007, 16:07
Such mal nach dem Sieb des Erathostenes (evtl. noch ein "h" )
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: Primzahlen ermitteln?

  Alt 10. Mai 2007, 16:07
Zitat von Jan13490:
wollte mal ein Programm basteln, was Primzahlen finden kann.(Bin delphi anfänger)...Hat einer den quelltext?
Was bringt Dir der fertige Quelltext, welchen Du über die Suche im Forum als auch bei Google oft genug suchst?

Ansonsten sage uns doch mal wie weit Du bist und wo es genau Probleme gibt.

......

P.S.: Hört sich sehr nach Hausaufgaben an...
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
177 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Primzahlen ermitteln?

  Alt 10. Mai 2007, 16:11
Hi,

mit Quelltext wird es schwierig werden.
Lieber selbst (am Anfang) schlecht gemacht als gut kopiert.

Für den Anfang benötigst du zwei Eingabefelder für die Bereichseingabe.
Dann könntest du ein Schleifenkonstrukt verwenden, um alle Zahlen des Bereichs zu überprüfen.
Sollte im Prüfvorgang eine Primzahl entdeckt worden sein, dann gib diese aus.

Grüsse G.

PS: Hier sind Informationen über Primzahlen
Gruss Gremlin
  Mit Zitat antworten Zitat
Jan13490

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

Re: Primzahlen ermitteln?

  Alt 10. Mai 2007, 17: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
gekkorist

Registriert seit: 14. Jan 2007
30 Beiträge
 
#6

Re: Primzahlen ermitteln?

  Alt 10. Mai 2007, 17:09
Delphi-Quellcode:
Var
prime, x: Integer;
begin

prime := StrToInt(Edit1.text);
x := 1;
//größer als 1 = beginnen
If prime > 1 then
begin
Repeat
x := x + 1;
//gucken ob x einen rest von 0 hat und durch eine zahl die größer als "eingabe" teilbar is"
Until (x > prime div x) or (prime Mod x = 0) ;

if x> prime div x
then
begin
Label1.Caption:=Edit1.text+ ': Ja, Primzahl.' ;
label1.Color :=clgreen;
end

else
begin
Label1.Caption:=Edit1.text +': Nein, keine Primzahl.';
label1.Color :=clred;
end;
end
 // 1 und 0
else
begin
if prime = 1 then
begin
Label1.Caption:='1: Nein, keine Primzahl.' ;
label1.Color :=clred;
end;
if prime=0 then
begin
Label1.Caption:='0 weiss ich nicht :).';
label1.Color :=clred;
end;
end;
// ohh is nur wenn eine Zahl eingegebn ist, aber das umzuändern is sicherlich net schwer!
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Primzahlen ermitteln?

  Alt 10. Mai 2007, 17:12
Könntet ihr 2 eure Codes bitte in Delphi-Tags einschließen?
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Primzahlen ermitteln?

  Alt 10. Mai 2007, 17:13
sieht doch ganz gut aus. Du musst beim Sieb aber nur bis zur Hälfte der Zahlen gehen, weil sonst die vielfach über deiner oberen Grenze liegen. Auch ist das hardgecodete Array nicht schön. Schau dir doch mal dynamische Array an.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Jan13490

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

Re: Primzahlen ermitteln?

  Alt 10. Mai 2007, 17:18
Nur leider blick ich fast selbst durch mein programm nicht mehr durch.
Irgendwo muss da ein Fehler sein, nur ich find den nicht.
  Mit Zitat antworten Zitat
Gremlin

Registriert seit: 18. Apr 2006
Ort: Im Süden
177 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Primzahlen ermitteln?

  Alt 10. Mai 2007, 22:47
Wie äussert sich der Fehler denn?
Gruss Gremlin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 09:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz