오일러 피 함수(Euler's phi (totient) function)

오일러 피(파이) 함수 ϕ(n)1부터 n까지 정수 중 n과 서로소인 수의 개수를 세는 함수이다.

공식

양의 정수 n에 대해 오일러 피 함수는 다음과 같이 정의된다.

ϕ(n)=piai1(pi1)

이때 각 pin의 소인수이고 aipi의 차수이다. 즉 n을 소인수분해 하면 piai이다.

증명

Lemma 1. n이 소수 p에 대해 n=pk인 경우 ϕ(n)=pk1(p1)이다.

1 이상 pk 이하 정수이면서 pk와 서로소가 아니려면 소인수로 p를 가지면 된다. 따라서 p의 배수이면 되므로 이런 수는 p,2p,3p  pk1p, 총 pk1개 이다. 그러므로 n이 소수 pk제곱수인 경우 오일러 피 함수는 다음과 같이 정의된다.

ϕ(n)=pkpk1=pk1(p1)

Lemma 2. 오일러 피 함수는 곱셈적 함수(multiplicative function)이다.

mn이 서로소일 경우, ϕ(mn)=ϕ(m)ϕ(n)임을 보일것이다.

mn이 서로소라고 하자. 이때 1부터 mn까지 숫자를 나열하는 mn 테이블을 그리고, 이 테이블에서 mn과 서로소인 숫자가 몇 개인지 세면 그 값이 ϕ(mn)이다.

1m+12m+1(n1)m+12m+22m+2(n1)m+23m+32m+3(n1)m+3m2m3mnm

테이블에서 rth row의 값들은 km+r의 꼴이다(0kn1). 이때 d=gcd(m,r)라고 하자.

d>1인 경우 gcd(m,r)=gcd(m,km+r)이므로( 유클리드 호제법) km+rmn은 공약수 d를 가진다. 따라서 이 경우 r-th row의 수들은 모두 mn과 서로소가 아니다.

반대로 d=1인 경우 같은 이유로 km+rm과 서로소이다. 따라서 이런 row에서 n과도 서로소인 수는 mn과 서로소이다. 그리고 그런 rowϕ(m)개 있음을 알고 있다. 이제 각 row마다 n과 서로소인 수는 정확히 ϕ(n)개 있음을 보이면 된다.

rth row의 수들은 다음과 같은데, rm을 더하는 것을 n1번 반복하는 꼴이다.

r, m+r, 2m+r  (n1)m+r

mn이 서로소이므로, 이 수들을 modn하면 0부터 n1까지의 수가 정확히 한 번씩 나오게 된다. (이빨의 개수가 서로소인 두 개의 톱니바퀴가 맞물려 돌아가는 것을 떠올려보라.)

gcd(x+kn,n)=gcd(x,n)이므로 modn한 값이 n과 서로소라면 원래 값도 n과 서로소이고, 그 이도 성립한다. 1부터 n (0modn)까지 정수 중 n과 서로소인 수는 ϕ(n)개 있으므로, 각 row마다 n과 서로소인 수는 정확히 ϕ(n)개 있다.

결론적으로 1부터 mn까지 숫자를 나열한 mn 테이블에서, mn과 서로소인 수가 포함된 rowϕ(m)개이고 해당 row마다 mn과 서로소인 수는 ϕ(n)개이다.

ϕ(mn)=ϕ(m)ϕ(n)

Theorem 1. 모든 양의 정수 n에 대해 ϕ(n)=piai1(pi1)이다.

n=1인 경우는 자명하고, 1보다 큰 양의 정수 n은 소수의 k제곱수들의 곱이므로, Lemma 1, 2의 결과에 따라 오일러 피 함수의 정당성을 증명하였다.



출처: Loyola University Chicago 수업자료