Seite 1 von 1

Funktion für Primzahlen

Verfasst: Dienstag 16. November 2021, 14:50
von ninety
Ich versuche ein Funktion zu schreiben, welche mir angibt ob die Variable eine Primzahl (True) oder keine Primzahl (False) ist.

def is_prime(number):
if number / 2 != int:
return False

elif number / 2 != float:
return True

Es sollte doch eigentlich funktionieren, oder?

print(is_prime(17) == False)


Re: Funktion für Primzahlen

Verfasst: Dienstag 16. November 2021, 14:55
von __deets__
Du vergleichst einen Zahlwert mit einem Typen. Das ist niemals sinnvoll.

Re: Funktion für Primzahlen

Verfasst: Dienstag 16. November 2021, 15:00
von Sirius3
Eine Zahl kann niemals gleich einem Typ sein.
Was Du suchst, ist, ob ein Zahl ohne Rest teilbar ist:

Code: Alles auswählen

def is_prime(number):
      if number % 2 != 0:
         return False
      elif number % 2 == 0:
         return True
Da die zweite Bedingung genau dem Gegenteil der ersten entspricht, kann man auch else benutzen:

Code: Alles auswählen

def is_prime(number):
      if number % 2 != 0:
         return False
      else:
         return True
Da die if-Blöcke nur wieder einen Wahrheitswert zurückliefern, kann man die Bedingung auch gleich ins `return` einbauen:

Code: Alles auswählen

def is_prime(number):
      return number % 2 == 0
Das einzige Problem, das jetzt noch besteht, ist, dass die Funktion nicht tut, was der Name behauptet.
Wie prüft man denn, ob eine Zahl eine Primzahl ist?