Priemgetallen
Bij elk getal controleer ik of er een heel getal(integer, vandaar is_int) uit komt als je de wortel er van trekt, dat heb ik met $wortel_pg gedaan en met !is_int($wortel_pg).
Dus als de wortel een heel getal is dan doet hij de else, maar het gekke is dat hij dat nooit doet want als ik aan het einde echo $tel doe dan blijkt dat $tel nog steeds 4 is! Maar hij output 121 en 121 is eerst langs de controle geweest en als je daar de wortel van trekt dan krijg je 11, dus een heel getal(integer).
Maar tel++; wordt niet gedaan en echo "Beware!!!"; ook niet.
Kan iemand mij zeggen wat ik fout heb gedaan?
Het deel van het script waar het omgaat(Ik heb een deel er niet bij gezet omdat ik eigenlijk niet wil dat het gekopieerd wordt):
$pg = 1;
$tel = 4;
while($getal<10000)
{
$pg += 6;
$wortel_pg = sqrt($pg);
if (!is_int($wortel_pg))
{
$getal++;
En nog andere geheime dingen!!!
}
else
{
echo "Beware!!!";
$tel++;
}
}
sqrt geeft altijd een float terug.
Ik ken geen standaard functie in PHP die kijkt of het een geheel getal is, maar je kan gemakkelijk iets zelf verzinnen a la
Ik ken geen standaard functie in PHP die kijkt of het een geheel getal is, maar je kan gemakkelijk iets zelf verzinnen a la
Een wortel zal geen integer zijn.
Met de volgende aanpassing zal je script werken:
if (!is_int($wortel_pg)) -> if ( fmod( $wortel_pg , 1 ) != 0 )
Dus zou je mij (stap voor stap) uit kunnen leggen hoe deze function werkt?
Mark Coenen - Dat weet ik, maar ik ben gewoon voorzichtig en ik hou er niet van om mijn manier prijs te geven (ik doe het namelijk op een andere manier)
Peter Dorn - Bedankt, deze manier is ietsjes sneller (en ik snap hem beter) dan die vanJelmer rrrr, bedankt voor de oplossing!
Wat is er zo speciaal aan een scriptje dat priemen uitrekent? Kan ieder jongetje van 12 maken..
Ik ken hem, hij is een jongetje van 12
Ik ben 13!!!
Als het voor 'wetenschappelijke' redenen is, dan zou ik geen php gebruiken. Php is daar veel traag voor en gebruikt ook te veel geheugen. Iets als lisp ofzo zou veel beter zijn lijkt mij.
Karl heeft enigszins gelijk, php is niet een ideale taal ervoor, maar het gaat om het doel en de context, dus je kan het niet gelijk afkraken ;) En ga je voor speed, kies dan voor Haskell, een taal echt ideaal hiervoor, al het is best pittig.
Ochja, en de zeef van Eratosthenes is wel een erg leuke uitdaging om zelf even te maken :)
Afra ca op 09/06/2010 12:36:24:
Karl heeft enigszins gelijk, php is niet een ideale taal ervoor, maar het gaat om het doel en de context, dus je kan het niet gelijk afkraken ;) En ga je voor speed, kies dan voor Haskell, een taal echt ideaal hiervoor, al het is best pittig.
Misschien moet je even lezen? Ik vraag hem ook waarom hij dat wilt maken.
Alleen als hij het dus voor ingewikkeldere dingen, wetenschappelijke dingen, dan raad ik het hem af.
Ik kraak niemand af. Je moet eens naar jezelf kijken.
Karl, mijn excuses voor het niet goed lezen van je post, geen idee waarom ik dat over het hoofd zag. En ik refereerde met m'n eerste zin niet naar jou Karl, maar naar Kurt, computer en Cimah die beetje kinderachtig aan het doen waren. En als je mijn post goed leest zie je dat ik ook niemand afkraak, óf wij hebben een totaal andere definitie van afkraken...
"Ik ben 13!!!":)