Funktion für Primzahlen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ninety
User
Beiträge: 1
Registriert: Dienstag 16. November 2021, 14:39

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)

__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du vergleichst einen Zahlwert mit einem Typen. Das ist niemals sinnvoll.
Sirius3
User
Beiträge: 18278
Registriert: Sonntag 21. Oktober 2012, 17:20

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?
Antworten