Kezdőoldal » Számítástechnika » Programozás » Python feladat : amit elakarok...

Butt kérdése:

Python feladat : amit elakarok érni az, hogy n=lehet bármilyen szám annak az osztóit szeretném kiírni ?

Figyelt kérdés

eddig jutottam :

while n != 0:

n-= 1

if n % n == 0:

print(n)

de ez alapból rossz



2021. szept. 25. 10:59
1 2 3 4 5
 1/42 Pelenkásfiú ***** válasza:
Ez azért nem működik, mert n-t csökkented mindig eggyel, utána önmagával osztod el a maradékos osztásnál. :)
2021. szept. 25. 11:18
Hasznos számodra ez a válasz?
 2/42 Pelenkásfiú ***** válasza:
100%

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

2021. szept. 25. 11:23
Hasznos számodra ez a válasz?
 3/42 anonim ***** válasza:
51%
Akkor először is eredj és nézz utána a számhalmazoknak, mivelhogy a próbálkozásod nemhogy bármely számra de már az egész számokra se működne, lásd negatív számok..
2021. szept. 25. 11:49
Hasznos számodra ez a válasz?
 4/42 A kérdező kommentje:

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

2021. szept. 25. 11:51
 5/42 anonim ***** válasza:
Működik, de i-t nem kell növelned a végén eggyel, a for ciklus megcsinálja.
2021. szept. 25. 11:52
Hasznos számodra ez a válasz?
 6/42 Pelenkásfiú ***** válasza:

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?

2021. szept. 25. 11:56
Hasznos számodra ez a válasz?
 7/42 A kérdező kommentje:
Írj egy programot, ami bekér egy számot. Ennek meghatározza az osztóit, ezeket felsorolja és kiírja, hogy hány osztója van a számnak.
2021. szept. 25. 11:59
 8/42 A kérdező kommentje:
kiszedtem belőle az i+=1 et és egy listába raktam az egészet
2021. szept. 25. 12:00
 9/42 Pelenkásfiú ***** válasza:
68%

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

2021. szept. 25. 12:06
Hasznos számodra ez a válasz?
 10/42 Pelenkásfiú ***** válasza:
68%
Bocs, azt elnéztem, hogy az n//2-höz hozzá kell adni 1-et vagy -1-et, mert az a szám már nincs benne a range-ben.
2021. szept. 25. 12:12
Hasznos számodra ez a válasz?
1 2 3 4 5

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

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!