Python :: Aufgabe #328

3 Lösungen Lösungen öffentlich

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ß

Lösungen:

vote_ok
von satn1241 (2900 Punkte) - 06.03.2021 um 16:59 Uhr
Quellcode ausblenden Python-Code
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
vote_ok
von AlexGroeg (1240 Punkte) - 21.03.2021 um 16:41 Uhr
Quellcode ausblenden Python-Code

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

vote_ok
von eisheiliger (1980 Punkte) - 26.03.2021 um 17:48 Uhr
Quellcode ausblenden Python-Code

"""
#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()