« 1 2
Autor Zpráva
Alphard
Profil
Radovan789:
Budeš muset použít to stou vlastní funkcí protože for ve for nebo while ve for nerozjedeš.
Chcete tím říct, že cykly nelze zanořovat?

Tady [#29] je funkční řešení.
Tady [#2] je efektivní řešení.

Teď to zbytečně neprotahujte, obvykle se algoritmus na prvočísla vymýšlí na podzim, když to na školách začnou zadávat jako úkoly :-)
DoubleThink
Profil *
Gauner:
Počítat prvočísla jednotkovou iterací je prasárna prasácká. Mnohem rychlejší (i když paměťově náročnější) je zmiňované Eratosthenovo síto.
Nicméně - nějak si nedovedu představit důvod, k čemu ti prvočísla budou. Asymetrické faktorizační šifrovací klíče asi negeneruješ, že ne?

Radovan789:
for ve for nebo while ve for nerozjedeš.
Říká kdo?
Radovan789
Profil *
Tak jsem se trošku splet.
Darker
Profil
DoubleThink:
k čemu ti prvočísla budou
Já jsem taky ve svých začátcích psal program na prvočíselný rozklad.
Prostě jen tak, na procvičení...
Marek88
Profil
OT: Pro zrychlení algoritmu stačí dělit pouze do druhé odmocnity testovaného čísla.
$limit = sqrt($zkoumaneCislo);
while($delitel<=$limit) {
   ...
}
Keeehi
Profil
Marek88:
To už je v [#29].

To Alphardovo řešení by šlo ještě zrychlit: Vyzkoušet dělení dvojkou > $dělitel+1 > vyzkoušet dělení trojkou > $dělitel+2 > vyzkoušet dělení pětkou >
$dělitel+2 > …
Marek88
Profil
Keeehi:
Aha... Přiznávám, že jsem toto vlákno nečetl celé...
Spectator
Profil
Marek88:
stačí dělit pouze do druhé odmocnity testovaného čísla
přesně tak.
Prema
Profil *
Ahoj potřeboval bych poradit jak vytvořit v php prvočíselné dvojice aby se vypisovali na obrazovku pod sebou nebo vedle sebe . např 3,5 11,13
Alphard
Profil
Jak daleko potřebujete jít? Napadá mě buď cs.wikipedia.org/wiki/Eratosthenovo_síto a pak už by bylo snadné najít v něm dvojice. Když mám pole všech prvočísel do nějaké meze, můžu ho projít cyklem a zjišťovat, jestli je následující větší o 2.
Nebo využít vzorec (6n - 1,6n + 1) a pak ověřit, jestli to jsou prvočísla.

Pokud jde jen o ukázku algoritmu, je to jedno. Jestli chcete vážně hledat velká prvočísla, nebude PHP ideální.
« 1 2

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: