CloudCoder Python feladatgyujtemeny/osztok szotara
A MathWikiből
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