Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Primzahlen berechnen mit nur wenigen Befehlen (https://www.delphipraxis.net/122464-primzahlen-berechnen-mit-nur-wenigen-befehlen.html)

niggeden 16. Okt 2008 16:25


Primzahlen berechnen mit nur wenigen Befehlen
 
Hi!

Wir sollten uns mal Gedanken darüber machen, wie man mit Delphi 6 ein Programm schreiben kann, das Primzahlen "entlarvt".
In der Konsolenanwendung am Ende soll dann z.b. stehen:
Zahl 10 keine Primzahl
Zahl 11 Primzahl
usw.


Da wir aber kaum Befehle kennen können wir das meiner Meinung nach nur mit Divisionen erreichen.

Wir würdet ihr das machen?

MfG

Klaus01 16. Okt 2008 16:29

Re: Primzahlen berechnen mit nur wenigen Befehlen
 
Hallo,

gebe mal im Suchfeld "isPrim" an, Du wirst dann einige Treffer mit Beispielen erhalten.

Grüße
Klaus

3_of_8 16. Okt 2008 16:39

Re: Primzahlen berechnen mit nur wenigen Befehlen
 
Tipp: Eine Zahl n ist eine Primzahl, wenn sie durch keine natürliche Zahl von 2 bis Wurzel(n) teilbar ist. (Ausnahme: Die 1 ist auch keine)

jfheins 16. Okt 2008 17:00

Re: Primzahlen berechnen mit nur wenigen Befehlen
 
Möchtest du

1. Einen Test, der prüft, ob eine bestimt Zahl prim ist oder

2. Ein Verfahren, das für einen bestimmten Bereich alle Primzahlen heraussucht?

Das sind 2 verschiedene Dinge, und das eine zu verwenden um das andere zu erreichen ist eher ... unperformant ;)

zu 1. wie Manuel vorgeschlagen hat, musst du alle potenziellen Teiler-Kanidaten prüfen.

zu 2. Da gibt es das Sieb des Eratosthenes, ist auf Wikipedia relativ gut erklärt. Damit sparst du Aufwand, wenn du sowiso alle Zahlen von 1 bis n auf "Primheit" untersuchen möchtest.

Apollonius 16. Okt 2008 17:05

Re: Primzahlen berechnen mit nur wenigen Befehlen
 
Dann gibt es natürlich noch die probabilistischen Primzahltests. Dort können als prim angegebene Zahlen noch mit einer geringen Wahrscheinlichkeit zusammengesetzt sein. Dafür sind diese Tests extrem schnell. Die Fehlerwahrscheinlichkeit kann man ziemlich stark verringern, indem man die Iterationszahl vergrößert. Beispielsweise ist beim Miller-Rabin-Test die Wahrscheinlichkeit, dass eine nicht-Primzahl als prim angegeben wird, bei zwanzig Iterationen geringer als ein Billionstel.

chamop87 16. Okt 2008 17:08

Re: Primzahlen berechnen mit nur wenigen Befehlen
 
Zitat:

Tipp: Eine Zahl n ist eine Primzahl, wenn sie durch keine natürliche Zahl von 2 bis Wurzel(n) teilbar ist. (Ausnahme: Die 1 ist auch keine)
zwei ist auch eine primzahl, weil sie nur durch 2 und 1 teilbar ist!

STS301 16. Okt 2008 17:09

Re: Primzahlen berechnen mit nur wenigen Befehlen
 
schau dir das einmal an
http://www.delphipraxis.net/internal...922&highlight=

3_of_8 16. Okt 2008 17:12

Re: Primzahlen berechnen mit nur wenigen Befehlen
 
Zitat:

Zitat von chamop87
Zitat:

Tipp: Eine Zahl n ist eine Primzahl, wenn sie durch keine natürliche Zahl von 2 bis Wurzel(n) teilbar ist. (Ausnahme: Die 1 ist auch keine)
zwei ist auch eine primzahl, weil sie nur durch 2 und 1 teilbar ist!

Und? Für n:=2 ist aber deine rechte Intervallgrenze (sqrt(2)) kleiner als die linke Intervallgrenze (2), sodass du überhaupt keine Zahl überprüfst, wenn du den von mir vorgeschlagenen Algorithmus anwendest.

jokerfacehro 16. Okt 2008 18:07

Re: Primzahlen berechnen mit nur wenigen Befehlen
 
den einfachsten primzahl algorithmus den ich gesehn hab, war nur mit addition und sehr einfach.

siehe hier, is glaub ich der 2. oder 3 beitrag http://www.delphipraxis.net/internal...ct.php?t=40427


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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 by Thomas Breitkreuz