AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Primzahlen-Programm

Ein Thema von BlackPegasus · begonnen am 1. Dez 2015 · letzter Beitrag vom 1. Dez 2015
Antwort Antwort
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#1

AW: Primzahlen-Programm

  Alt 1. Dez 2015, 16:39
hallo,

Delphi-Quellcode:
zahl:=Strtoint(Edit1.Text);
l:=trunc(sqrt(zahl));
isPrim:=true;//boolean
for i:=2 to l do begin
  erg:=zahl mod i;
  if erg=0
  then begin
    Label2.Caption:='Das ist keine Primzahl';
    isPrim:=false;
    break;
  end;
end;
if isPrim then Label2.Caption:='Das ist eine Primzahl';
mfg
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!

Geändert von frankyboy1974 ( 1. Dez 2015 um 16:43 Uhr) Grund: end; vergessen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Primzahlen-Programm

  Alt 1. Dez 2015, 16:44
Das sollte die richtigen Ergebnisse liefern:
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  i : integer;

function IstPrimzahl(zahl:integer):boolean;
var
  i : integer;
  max : integer;
begin
  result:=true;
  max:=trunc(sqrt(zahl));
  for i:=2 to max do
    if zahl mod i = 0 then result:=false;
end;


begin
  try
    { TODO -oUser -cConsole Main : Code hier einfügen }
    for i:=1 to 128 do begin
      if IstPrimzahl(i) then writeln(inttostr(i)+' ist eine Primzahl')
      else writeln(inttostr(i)+' ist keine Primzahl');
    end;
    readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
BlackPegasus

Registriert seit: 1. Dez 2015
6 Beiträge
 
#3

AW: Primzahlen-Programm

  Alt 1. Dez 2015, 17:25
Danke an alle!!!
Die meisten Antworten sind schon zu fortgeschritten für mich

aber das hier, scheint mir am unkompliziertesten.
nur eine Frage, könnt ihr mir die Funktion
Code:
isPrim:=true;//boolean
in diesem Kontext erklären?
Ich versteh irgendwie nicht was es mir genau da bringt
Danke nochmal

hallo,

Delphi-Quellcode:
zahl:=Strtoint(Edit1.Text);
l:=trunc(sqrt(zahl));
isPrim:=true;//boolean
for i:=2 to l do begin
  erg:=zahl mod i;
  if erg=0
  then begin
    Label2.Caption:='Das ist keine Primzahl';
    isPrim:=false;
    break;
  end;
end;
if isPrim then Label2.Caption:='Das ist eine Primzahl';
mfg
  Mit Zitat antworten Zitat
Mathematiker
(Gast)

n/a Beiträge
 
#4

AW: Primzahlen-Programm

  Alt 1. Dez 2015, 17:37
Hallo,
nur eine Frage, könnt ihr mir die Funktion
Code:
isPrim:=true;//boolean
in diesem Kontext erklären?
In der Variablen isPrim wird gespeichert, ob die zu untersuchende Zahl einen echten Primteiler hat.
Findest du einen Teiler, so wird isPrime auf false gesetzt.
Im abschließenden Test wird nur dann "Das ist eine Primzahl" ausgegeben, wenn isPrime nicht(!) falsch ist. Damit dies garantiert wird, muss vor der Schleife isPrime auf true gesetzt werden.

Beste Grüße
Mathematiker
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#5

AW: Primzahlen-Programm

  Alt 1. Dez 2015, 17:42
hallo,

isPrim ist in diesem Zusammenhang keine Funktion sondern eine Variabel und zwar vom Typ 'boolean'. Da in deinem Quellcode auch kein Var Bereich angegeben war, bin ich davon ausgegangen, dass die Variablen global definiert sind.

Am Anfang wird die Variable isPrim auf true gesetzt, sofen du einen Teiler findest setzt du den Wert auf false. Sofern am Ende die Variable immer noch auf true steht, hast du also keinen Teiler gefunden und somit ist es eine Primzahl.


mfg
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
BlackPegasus

Registriert seit: 1. Dez 2015
6 Beiträge
 
#6

AW: Primzahlen-Programm

  Alt 1. Dez 2015, 17:59
Ok, vielen Dank!
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: Primzahlen-Programm

  Alt 1. Dez 2015, 18:00
Ok, vielen Dank!
Jetzt haben wir dich voll erschlagen, nicht wahr?
  Mit Zitat antworten Zitat
BlackPegasus

Registriert seit: 1. Dez 2015
6 Beiträge
 
#8

AW: Primzahlen-Programm

  Alt 1. Dez 2015, 18:13
Haha^^
Ja mit deiner Antwort schon bissle^^
Hab aber das nötigste denk ich mal verstanden^^
und die ausnahmen mit zahlen kleiner als 2, werde ich noch hinzufügen

Geändert von BlackPegasus ( 1. Dez 2015 um 18:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Puke
Puke

Registriert seit: 7. Nov 2012
123 Beiträge
 
Delphi XE5 Architect
 
#9

AW: Primzahlen-Programm

  Alt 1. Dez 2015, 21:56
Man kann sichs auch ganz einfach machen und das Problem im Sinne von Eratosthenes UND Perlsau lösen:

Man geht nicht strikt Brute-Force durch, sondern prüft die neue Prüfzahl, durch die bisher gefunden Primzahlen.
Eine einfache Lösung, die bis ins Unendliche funktioniert und auch gut Rechenzeit spart (allerdings nicht ganz so viel wie Eratosthenes)

Naja, dann viel Spaß
Puke
Gruß Puke
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:47 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