Seite 1 von 1

if i | (p-1)/2

Verfasst: Sonntag 1. Februar 2015, 13:53
von Frager
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.

Re: if i | (p-1)/2

Verfasst: Sonntag 1. Februar 2015, 14:02
von Sr4l
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

Re: if i | (p-1)/2

Verfasst: Sonntag 1. Februar 2015, 14:03
von Sirius3
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

Re: if i | (p-1)/2

Verfasst: Sonntag 1. Februar 2015, 15:08
von Frager
Danke Sirius3 das war es.