Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Alkuluvut

odys [15.11.2003 16:14:06]

#

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>";

?>

T.M. [17.11.2003 14:46:41]

#

Miks toi pistää noi luvut taulukkoon? Tuskin siitä mitään iloa irtoaa :P

odys [18.11.2003 13:03:02]

#

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.

ajv [18.11.2003 18:49:48]

#

Plussaa kommentoinnista!

odys [18.11.2003 23:13:59]

#

Hmm ompas mun äidinkielen taito ruosteessa.. kauheita kielioppivirheitä vilisee kommenteissa, mukaanlukien edellinen kommenttini. :D

conami [19.11.2003 09:58:49]

#

"vaikka ei tästä nyt kellekkään varmaan mitään hyötyä on."

:D

Sahrah [24.04.2008 00:04:10]

#

mua alkaa ainaki kuumottamaa nähdessäni alkulukuja!

:D

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta