Python :: Aufgabe #328
3 Lösungen
Zweierpotenz (Power Of Two)
Anfänger - Python
von JKooP
- 06.03.2021 um 11:51 Uhr
Erstelle eine Methode/Funktion, mit der man bestimmen kann,
ob die übergebene Zahl als Ganzzahl- Potenz (Integer) zur Basis 2 geschrieben werden kann.
Beispiele:
Zahl: 1 => true
Lösung: 0, denn 2 hoch 0 = 1
Zahl: 16 => true
Lösung: 4, denn 2 hoch 4 = 16
Zahl: 3 => false
Lösung: keine, da keine Ganzzahl zur Basis 2 die Zahl 3 ergibt
Für Fortgeschrittene:
Die Aufgabe ohne Zuhilfenahme der eingebauten Logarithmusfunktionen lösen.
Viel Spaß
ob die übergebene Zahl als Ganzzahl- Potenz (Integer) zur Basis 2 geschrieben werden kann.
Beispiele:
Zahl: 1 => true
Lösung: 0, denn 2 hoch 0 = 1
Zahl: 16 => true
Lösung: 4, denn 2 hoch 4 = 16
Zahl: 3 => false
Lösung: keine, da keine Ganzzahl zur Basis 2 die Zahl 3 ergibt
Für Fortgeschrittene:
Die Aufgabe ohne Zuhilfenahme der eingebauten Logarithmusfunktionen lösen.
Viel Spaß
Lösungen:
zahl = 1234
exp = 0
while True:
if 2 ** exp == zahl:
print("2er Potenz, denn 2 hoch", exp, " = ", zahl)
break
if 2 ** exp > zahl:
print("keine 2er Potenz")
break
exp += 1
def ist_basis_2(zahl):
if (zahl**1/2)%2 == 0:
return 'true'
else: return 'false'
werte = [1, 16, 3]
print('Zahl zur Basis 2:\n')
for zahl in werte:
print('Zahl: {} => {}'.format( zahl, ist_basis_2(zahl)))
"""
#328: Zweierpotenz (Power Of Two)
Erstelle eine Methode/Funktion, mit der man bestimmen kann, ob die übergebene Zahl als
Ganzzahl- Potenz (Integer) zur Basis 2 geschrieben werden kann.
"""
from math import log
def zweierpot(zahl):
if log(zahl, 2) % 1 == 0:
return True
else:
return False
def main():
print(zweierpot(1))
print(zweierpot(3))
print(zweierpot(16))
if __name__ == '__main__':
main()
