Python feladat : amit elakarok érni az, hogy n=lehet bármilyen szám annak az osztóit szeretném kiírni ?
eddig jutottam :
while n != 0:
n-= 1
if n % n == 0:
print(n)
de ez alapból rossz
Használj inkább egy for ciklust!
A range()-et már biztos ismered. Az menjen 1-től n+1-ig, vagy akár csak n-ig és a végén mindenképp kiírod még n-t is.
(Valójában elég a szám feléig menni, mert annál nagyobb osztója már csak önmaga lehet.)
Köszönöm szépen így csináltam i=1
for i in range(1,n+1):
if n % i == 0:
print(i)
i += 1
és most működik
Az "i += 1" az miért van ott?
A for ciklus növeli az i-t anélkül is.
Hibát nem okoz, mert a for a range-ből veszi az értékeit, de más nyelvben egy for ($i = 0; $i <= $n; $i++) esetén már gond lenne.
Az való igaz, hogy negatív számokra ez nem működik. Hogy szólt pontosan a feladat?
Igazából nem nagy dolog negatív számokra is megcsinálni.
Pozitív: range(1, n//2[, 1]) -- a szögletes azt jelenti, hogy opcionális
Negatív: range(-1, n//2, -1)
(Ha esetleg így //2-ig mész, akkor ne felejtsd "n"-t még beletenni.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!