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.
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