Mi a leggyorsabb mód egy szám osztóinak a számának a meghatározására? (programozási szempontból)
Figyelt kérdés
Ismerem a matematikai módszert(kitevők+1 összeszorszása) és a nagyon lassú, de biztos megoldás(
CIKLUS i=1től n-ig
ha n mod i=0 osztokszama++)
de biztosan van valami gyorsabb megoldás is.
Csak a számuk kell, hogy mik az osztók, az nem érdekes.
Szöveges magyarázat, forráskód, folyamatábra, bármelyik jó lesz. Előre is köszi.
2010. nov. 14. 17:24
1/5 anonim válasza:
A lassú de biztos megoldást szoktuk használni. Előbb kifogysz változóméretből, minthogy belassulna tőle a program.
2/5 anonim válasza:
Mi a gond az általad is írt prímtényezős felbontás esetén kapott (kitevő + 1)-ek összeszorzásával? Ettől gyorsabbat szeretnél? Azt csak úgy tudom elképzelni, hogy ha menet közben (eddigi megtalált prímtényezőkkel leosztás után) valami gyors prímtesztelő algoritmussal vizsgálod, hogy a kapott értél prímszám-e, és ha igen, akkor leállhatsz a faktorizációval.
3/5 anonim válasza:
mondjuk én nem n-ig mennék hanem n div 2-ig és akkor máris fele annyiszor fut az algoritmus
4/5 zsomkovacs válasza:
Vagy menj csak sqrt(n)-ig, szorozd meg 2-vel, és ha négyzetszám, vonj ki belőle 1-et.
5/5 anonim válasza:
Ez egy matematikailag nehéz probléma. Nincs neki gyors megoldása, mert ha lenne, nem lenne biztonságos a manapság használt titkosítások jó része. Szóval nem a gyakorikérdéseken fogunk neked erre választ adni, menj el matematikusnak és akkor TALÁN felfedezel valamit, de kétlem, mert már egy ideje gondolkodnak a problémán.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!