if i | (p-1)/2

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
Frager
User
Beiträge: 5
Registriert: Donnerstag 29. Januar 2015, 15:19

Hallo,
ich wollte ne if-Bedingung starten wenn i | (p-1)/2 (wenn i ein Teiler von (p-1)/2 ist) habe aber gemerkt dass Python das gängige Zeichen (|) irgendwie nicht nimmt.
Kann mir jemand sagen, wie man so etwas sonst schreibt. Mein Versuch war es, es dann starten zu lassen, wenn

Code: Alles auswählen

 (i/((p-1)/2)) == int(i/((p-1)/2))
ist, was aber nicht geht, da i immer kleiner oder gleichgroß wie (p-1)/2 ist.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Ich konnte deine Gedanken nicht nachvollziehen

aber wenn du ODER suchst das schreibt man in pthon als `or`

Code: Alles auswählen

In [1]: (True and False) or True
Out[1]: True
Falls du modulo suchst (das ist aber üblicherweise kein |) dann:

Code: Alles auswählen

In [2]: 21 % 3
Out[2]: 0

In [3]: 23 % 3
Out[3]: 2
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo,
das | ist kein gängiges Zeichen unter Programmiersprachen, um zu testen ob a Teiler von b ist. Dafür gibt es aber den Modulo Operator %, der den Rest einer Division bestimmt. Damit gilt, wenn a Teiler von b, dann läßt sich b ohne Rest durch a teilen: b % a == 0
Frager
User
Beiträge: 5
Registriert: Donnerstag 29. Januar 2015, 15:19

Danke Sirius3 das war es.
Antworten