Dabei seit: 22.01.2003 Ort: - Alter: - Geschlecht: -
Verfasst Di 10.02.2004 10:10 Titel
Primzahlenberechnung in PHP oder Java
Bin grad nen Bissl beim rumprobieren in PHP und Java und wollt nen kleines Prog schreiben welches alle Primzahlen bis 20 ausgibt:
Die ersten Bedingungen sind mir ja auch klar (darf nur durch sich selbst und eins teilbar sein = ( ($i / $i == 1) ($i / 1 == $i) ) ) aber wie stelle ich da "und durch keine andere"??????
Dabei seit: 06.04.2003 Ort: - Alter: 53 Geschlecht:
Verfasst Di 10.02.2004 10:16 Titel
Code:
// Zaehlt die Zahlen hoch die getestet werden sollen
for ($to_test=1; $to_test < 1001; $to_test = $to_test+1)
{
$teilbar=false;
// In dieser Schleife wird versucht die Zahl durch andere
// zu teilen
for ($divisor=2; $divisor < $to_test; $divisor=$divisor+1)
{
// Kann die Zahl glatt geteilt werden?
if (0==($to_test % $divisor))
{
$teilbar=true;
}
}
if (false==$teilbar)
{
echo $to_test ;
}
}
Du musst anders herum denken. Du musst prüfen ob eine Zahl durch eine andere teilbar ist. Wenn das so ist, dann ist es keine Primzahl.
Obiger Algorithmus lässt sich noch optimieren. So kann eine Primzahl nie gerade sein und ich muss z.B. auch nicht prüfen ob eine Zahl durch sechs teilbar ist. Wenn sie durch sechs teilbar wäre, dann wäre sie vorher schon durch 2 bzw. 3 teilbar gewesen etc.
//EDIT by Sarky
Bitte Code-Tags vewenden!
Zuletzt bearbeitet von Sarky am Mi 11.02.2004 12:19, insgesamt 1-mal bearbeitet
Dabei seit: 31.10.2003 Ort: Freiburg Alter: 39 Geschlecht:
Verfasst Di 10.02.2004 10:18 Titel
ich würde es die eine schleife die alle zahlen von 1 - x (20) durchgeht. und eine weitere schleife die von 1 - die aktuelle zahl geht. dann in der 2. schleife die zahl mittels modulo durch die zweite zahl teilen wenn es außer bei 1 und der zahl keinen rest gibt ist es keine ansonsten ausgabe
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
Mediengestalter.info ist ein Projekt von Webformatik:: Forensoftware: phpBB