Tämä funktio palauttaa käyttäjälle alkuluvut siihen saakka mihin käyttäjä haluaa.
Tämä algoritmi tosiaan toimii.. löysin jostain netistä tämän algoritmin ja tarkistin vähän matkaa manuaalisesti tämän funktion palauttamia lukuja ja netissä listattuja alkulukuja.
Jos tämä tuottaa väärin lukuja niin sano.. niin poistan tän paskeen :D
<?php //===================================================== // Alkulukugeneraattori // // Tehnyt: odys // Päiväys: 15.11.2003 // // Tämä funktio tuottaa alkulukuja siihen saakka // mihin käyttäjä haluaa numeroita tarkistettavan. // // Nopeuden kannalta kannattaa varmaankin tarkistaa // numeroita maksimissaan suunnilleen 10^6 saakka. :-) //===================================================== function Alkuluvut($max) { // Ensimmäinen testattava luku on 3 if ($max >= 3) { // 2 on alkuluku, lisätään se listaan (Olennainen osa toimintaa) $alkuluvut[] = 2; // Käydään läpi kaikki numerot $max saakka for ($i = 3; $i <= $max; $i++) { // Jaetaan testattava luku kaikilla aiemmin löytyneillä alkuluvuilla for ($u = 0; $u < count($alkuluvut); $u++) { // Jos jakojäännös on 0 luku ei ole alkuluku if ($i % $alkuluvut[$u] == 0) { // Katkastaan looppi ja siirrytään seuraavaan testattavaan numeroon break; } // Jos jakajan neliö on suurempi kuin testattava luku niin luku on alkuluku else if (pow($alkuluvut[$u], 2) > $i) { // Lisätään alkulukulistaan $alkuluvut[] = $i; // Katkaistaan looppi ja siirrytään seuraavaan testattavaan lukuun break; } } } return $alkuluvut; } return FALSE; } $alkuluvut = Alkuluvut(100000); echo "<pre>"; print_r($alkuluvut); echo "</pre>"; ?>
Miks toi pistää noi luvut taulukkoon? Tuskin siitä mitään iloa irtoaa :P
No kyl se mun mielestä on parempi niin.. käyttäjä saa tehdä luvuilla mitä tykkää.. vaikka ei tästä nyt kellekkään varmaan mitään hyötyä on.
Plussaa kommentoinnista!
Hmm ompas mun äidinkielen taito ruosteessa.. kauheita kielioppivirheitä vilisee kommenteissa, mukaanlukien edellinen kommenttini. :D
"vaikka ei tästä nyt kellekkään varmaan mitään hyötyä on."
:D
mua alkaa ainaki kuumottamaa nähdessäni alkulukuja!
:D
Aihe on jo aika vanha, joten et voi enää vastata siihen.