Eulersche Funktion
Die Anzahl an a zwischen 0 und n, für die gilt, dass der ggT mit n gleich 1 ist.
φ(n)=#{a:0≤a≤n−1,ggT(a,n)=1}=#(Z/nZ)∗
Einfache Implementierung in Python:
def euler(n):
c = 0
for a in range(n):
ggt, _ = ggT(a, n)
if ggt == 1:
c += 1
return c
Dieser Algorithmus ist sehr langsam für großes n. Mit dem naiven Faktorisierungsverfahren lässt sich die eulersche Funktion auch wie folgt bestimmen:
φ(n)=i∏piei−1(pi−1)=n(1−p11)…(1−pr1)=np∣n∏(1−p1)
Kann auch verwendet werden um zu testen ob eine Zahl n eine Primzahl ist. Man testet:
φ(n)=n−1.
Also in Python:
def is_prime(n):
return euler(n) == n-1
Für n gelten die folgenden Äquivalenzen:
n ist Primzahl ⟺φ(n)=n−1⟺Z/nZ ist Ko¨rper.
Körper
Wenn n keine Primzahl ist, dann haben wir
n=ab.
Damit gilt also in
Z/nZ
, dass ab=0 wobei a=0 und b=0. Es ist also kein Integritätsring