페르마의 소정리(Fermat's little theorem)는 다음과 같이 정리할 수 있습니다.
a≥0에 대하여 ap≡a(mod p)를 만족하고,
만약 p가 소수이고, a와 p가 서로소이면 ap−1≡1(mod p)를 만족한다.
수학적 귀납법을 이용하여 위의 식을 증명해보겠습니다.
먼저, 0≤a≤p−1 범위의 정수에서만 증명해도 충분합니다. 그 이유는 a를 p로 나눈 나머지는 항상 0보다 크거나 같고 p−1보다 작거나 같기 때문입니다.
1. a=0일 때
a가 0인 경우에는 0p=0≡0(mod p)
2. a=k일 때 성립한다고 가정하고 a=k+1일 때
a=k일 때 성립한다고 가정했으므로, kp≡k(mod p)를 만족합니다.
이항 정리를 사용하여 a=k+1일 때도 성립함을 증명합니다.
(k+1)p=∑pi=0(pi)ki
이때 이항 계수의 정의에 의해서
(pi)=p!(p−i)!i!=p(p−1)⋅⋅⋅(p−i+1)i(i−1)⋅⋅⋅1
이고, 위 식은 1≤i≤p−1일 때 p의 배수이므로 p로 나누면 없어지게 됩니다. 또한, i가 0 또는 p이면 1입니다. 따라서,
(k+1)p≡(p0)k0+(pp)kp=kp+1≡k+1(mod p)
a=k+1일 때도 성립함을 증명했습니다. 따라서,따라서, a≥0에 대하여 ap≡a(mod p)를 만족합니다.
a와 p가 서로소인 경우는 다음과 같이 유도할 수 있습니다.
ap≡a(mod p)이므로, ap−a=a(ap−1−1)은 p로 나누어 떨어집니다. 이때, a와 p가 서로소이므로 ap−1−1은 p로 나누어 떨어집니다.
따라서, ap−1≡1(mod p)를 만족합니다.
'알고리즘' 카테고리의 다른 글
[ 알고리즘 ] KMP 알고리즘(KMP Algorithm) (0) | 2022.07.19 |
---|---|
[ 알고리즘 ] 컨벡스 헐 알고리즘(Convex Hull Algorithm) (0) | 2022.07.16 |
[ 알고리즘 ] 오일러 피 함수(Euler's phi function) (0) | 2022.07.09 |
[ 알고리즘 ] 포함 배제의 원리(Inclusion–exclusion principle) (0) | 2022.06.30 |
[ 알고리즘 ] 모듈러 연산(Modular Arithmetic) (0) | 2022.06.29 |