Mailinglisten-Archive |
Hallo Thomas,
benutze doch den modulu-Operator "%".
$X = "DEINE ZAHL";
$IST_PRIM = TRUE;
for ( $i = 2; $i < $X ; $i++)
{
if ( $X % $i == 0 ) { $IST_PRIM = FALSE; break; }
}
Das geht wesentlich schneller.
Wenn ich mich recht entsinne, kannst du auch statt $X als Grenze
die Wurzel von $X nehmen, allerdings dann $i <= sqrt($X).
Gruß,
Olaf
----- Original Message -----
From: Thomas Pons <tom_(at)_huno.net>
To: <php_(at)_php-center.de>
Sent: Monday, December 18, 2000 1:49 PM
Subject: [php] primzahlen
> servus liste,
>
> ich brauch ein einfaches (schnelles) script dass check ob eine zahl ne
primzahl
> ist oder nicht, spontan ist mir folgendes eingefallen:
>
> for ($i=2; $i<=$zahl-1; $i++)
> {
> $x = $zahl / $i;
> if(is_int($x))
> {echo "NEIN"; exit;}
> }
> echo "JA";
>
> das ist jetzt natürlich der längste weg und bei primzahlen >100000 kann
man das
> vergessen. im prinzip muss ja man nur prüfen ob eine zahl durch 2 oder
eine
> andere primzahl teilbar ist (3,5,7 ...), aber dann muss man die wieder
> ermittlen etc. und ich will mich nicht unbedingt in die mathematik
stürzen.
>
> kennt jemand vielleicht ein fertiges script oder eine gute url für solche
> sachen ?
>
> danke und gruß
> thomas
>
> ps. ja ich weiss dass php vergleichsweise lahm ist was solche
mathematischen
> operationen angeht, aber es muss nun mal php sein.
>
>
> --
> ** Durchgehend geöffnet: http://www.php-center.de **
> Die PHP-Liste: mailto:php_(at)_php-center.de
> http://infosoc.uni-koeln.de/mailman/listinfo/php
php::bar PHP Wiki - Listenarchive