Die Eulersche Phi-Funktion

Die Eulersche \varphi-Funktion gibt für jede natürliche Zahl n an, wie viele zu n teilerfremde natürliche Zahlen es gibt, die nicht größer als n sind.

Definition:

Sei n \in \mathbb{N}:
Die Eulersche \varphi-Funktion ist dann definiert durch:
\varphi(n):=|\{1\leq x \leq n \ | \ ggT(x,n)=1\}| dabei bezeichnet ggT(x,n) den größten gemeinsamen Teiler von x,n.

Beispiele:

  • \varphi(12)=4\Longrightarrow denn in der Menge \{1 \cdot\cdot\cdot 12\} sind nur die Zahlen 1, 5, 7, 11 teilerfremd.
  • \varphi(13)=12\Longrightarrow da 13 eine Primzahl ist, sind alle Zahlen die kleiner sind als 13 teilerfremd.

Es lassen sich nun folgende Aussagen treffen:

1) Für jede Primzahl p \in \mathbb{N} gilt: \varphi(p)=p-1.
2) Sei p \in \mathbb{N} eine Primzahl und k \in \mathbb{N}. Dann gilt: \varphi(p^k)=p^k-p^{k-1}=p^k\cdot(1-\frac{1}{p})

Beispiel zu 2):

\varphi(12)=\varphi(2^2 \cdot 3^1) \\ =\qquad\qquad \ 2^2 \cdot (1-\frac{1}{2}) \cdot 3^1 \cdot (1-\frac{1}{3}) \\ =\qquad \qquad \ (2^2-2^{2-1})\cdot(3^1-3^{1-1}) \\ =\qquad\qquad \ 2 \cdot 2 \\ =\qquad\qquad \ 4

In Python lässt sich die Berechnung von \varphi(n) relativ einfach wie folgt implementieren:

def calcphi(phivonN):
    i = 1
    wertPhi = 0
    while i < phivonN:
        if testggT(i, phivonN) == 1:
            wertPhi += 1
        i += 1
    return wertPhi

def testggT(i, phivonN):
    while phivonN!=0:
        i ,phivonN = phivonN, i % phivonN
    return i

if __name__ == '__main__':
    phivonN = 12
    print("Phi(",phivonN,")", "= ", calcphi(phivonN))

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.