CloudCoder Python feladatgyujtemeny/osztok szotara

A MathWikiből
A lap korábbi változatát látod, amilyen Csirke (vitalap | szerkesztései) 2015. december 13., 07:36-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

A hiba az, hogy az osztok = [] sornak az első cikluson belül kéne lennie, hisz minden számhoz elölről kell kezdeni az osztók listájának megalkotását. Ha ezt kijavítjuk, már jó a megoldás.

Azonban, így felesleges a "if i not in osztok:" sor, hisz minden i csak egyszer lehet úgyis. Szintén fölösleges a sorted() használata, hisz úgyis nagyságrendben találjuk meg az osztókat. Így a végleges kijavított és egyszerűsített kód:

def osztok_szotara(l):
    szotar = {}
    for szam in l:
        osztok = []
        for i in range(1, szam):
            if szam % i == 0:
                osztok.append(i)
        szotar[szam] = osztok
    return szotar
Személyes eszközök