Versio

Priemgetallen

Overzicht Reageren

Cimah Potte

Cimah Potte

08/06/2010 14:46:22
Quote Anchor link
Ik heb een php script geschreven om zo veel mogelijk priemgetallen als output te krijgen. (Het aantal is aan geven met $getal)

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++;
}
}
 
PHP hulp

PHP hulp

25/05/2012 11:44:25
Gesponsorde koppelingen:
 
Jelmer rrrr

Jelmer rrrr

08/06/2010 14:55:43
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
is_geheel_getal($n) {
    return (int) $n == $n;
}

?>
 
- SanThe -

- SanThe -

08/06/2010 14:57:43
Quote Anchor link
Een wortel zal geen integer zijn.
 
- Mark -

- Mark -

08/06/2010 14:58:55
Quote Anchor link
Wat zit je eigenlijk raar te doen met " En nog andere geheime dingen!!! " het is niet zo dat dit zo speciaal is. er zijn vele varianten op het internet te vinden.

http://nl.wikipedia.org/wiki/Zeef_van_Eratosthenes zie het php voorbeeld.
 
Peter Dorn

Peter Dorn

08/06/2010 15:04:09
Quote Anchor link
Het probleem is dat sqrt een float returned en geen integer.
Met de volgende aanpassing zal je script werken:
if (!is_int($wortel_pg)) -> if ( fmod( $wortel_pg , 1 ) != 0 )
 
Cimah Potte

Cimah Potte

08/06/2010 15:05:21
Quote Anchor link
Jelmer rrrr - Bedankt, daar was ik zelf echt niet achter gekomen. Maar ik snap echt héél weinig van functions af, hele simpele snap ik wel, maar zelfs dit is voor mij al te moelijk :p
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)
 
Cimah Potte

Cimah Potte

08/06/2010 15:09:31
Quote Anchor link
Peter Dorn - Bedankt, deze manier is ietsjes sneller (en ik snap hem beter) dan die vanJelmer rrrr, bedankt voor de oplossing!
 
Kurt Cobain

Kurt Cobain

08/06/2010 19:08:20
Quote Anchor link
Wat is er zo speciaal aan een scriptje dat priemen uitrekent? Kan ieder jongetje van 12 maken..
 
Com puter

com puter

09/06/2010 10:56:39
Quote Anchor link
Ik ken hem, hij is een jongetje van 12
 
Cimah Potte

Cimah Potte

09/06/2010 10:58:10
Quote Anchor link
Ik ben 13!!!
 
Karl Karl

Karl Karl

09/06/2010 11:17:02
Quote Anchor link
Wat is het nut ervan om priemgetallen uit te rekenen?
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.
 
Afra ca

Afra ca

09/06/2010 12:36:24
Quote Anchor link
Rustig aan heren. Het creeëren van een script dat priemgetallen uitrekent kan een prima oefening voor jezelf zijn om wat complexer te programmeren dan een gastenboek bijvoorbeeld ;) En met een beetje slechte implementatie maak je gelijk kennis met de limitaties van php.

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 :)
 
Karl Karl

Karl Karl

09/06/2010 13:08:52
Quote Anchor link
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.
 
Afra ca

Afra ca

09/06/2010 17:33:48
Quote Anchor link
Hoewel we beetje offtopic gaan zo, wil ik dit nog even rechtzetten.

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...
 
Niek s

niek s

09/06/2010 17:38:09
Quote Anchor link
hahahahahahahha :D

"Ik ben 13!!!":)
 



Overzicht Reageren