Hogyan adjuk meg pythonban, hogy volt-e olyan eset, amikor a használó által beírt két egymást követő szám egymás osztója volt?
A feladat:
Kérjünk be a felhasználótól egész számokat addig, amíg 0-t nem kapunk!
Adjuk meg, hogy volt-e olyan eset, amikor két egymást követő szám egymás osztója volt!
Az eredményt a bekérések után, a program végén írjuk ki!
Ne használjunk listát vagy más adatszerkezetet, csak egyszerű változókat!
Erre sikerült jutnom, de mindig azt adja ki, hogy van, még ha rossz számokat írok is be és fogalmam sincs mi a probléma. Hálás vagyok bármilyen segítségnek!
szam1 = int(input("Adjon meg egy egész számot (0 az utolsó)! "))
szam2 = None
osztok = False
if szam1 != 0:
szam2 = int(input("2Adjon meg egy következő egész számot (0 az utolsó)! "))
if szam2 != 0:
if szam1 % szam2 == 0:
osztok = True
else:
osztok = False
while szam2 != 0:
szam1 = int(input("3Adjon meg egy egész számot (0 az utolsó)! "))
if szam1 % szam2 == 0:
osztok = True
szam2 = szam1
else:
osztok = False
A cikluson belül nyilván értéket kell adni egy változónak abban az esetben, ha az egyik szám a másiknak az osztója.
Ezért nem szeretem egyébként a pythont, zárójelek (pláne behúzások) nélkül teljesen átláthatatlan, de ránézésre pár dolognak a ciklusbagon belül kellene lennie, de kívül van.
Bocs, de így félálomban nem tudom követni a szándékot a behúzások nélküli szövegben, kivált az osztok változó ide-oda állítgatását. False-ra nyilván csak egyszer kell állítanod, a program elején, aztán vagy úgy marad, vagy a megfelelő együttállás bekövetkezése esetén True-ra változtatod. De újra visszaállítani? Minek?
Itt van két kissé eltérő kísérletem, aligha tökéletesek, de hát én sem értek hozzá:
regiszam = 0
szam = -1;
volt = False
regiszam = int(input("Adjon meg egy egész számot (0 az utolsó)! "))
while szam != 0:
szam = int(input("Adjon meg egy egész számot (0 az utolsó)! "))
if szam != 0:
if (regiszam % szam == 0) or (szam % regiszam == 0):
volt = True
else:
regiszam = szam
if volt:
print("Volt.")
else:
print("Nem volt.")
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
regiszam = 0
szam = -1
volt = False
while szam != 0:
szam = int(input("Adjon meg egy egész számot (0 az utolsó)! "))
if regiszam != 0 and szam != 0:
if (regiszam % szam == 0) or (szam % regiszam == 0):
volt = True
regiszam = szam
if volt:
print("Volt.")
else:
print("Nem volt.")
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!