당신은 주제를 찾고 있습니까 “페르마 의 소정리 – 페르마의 소정리 설명 및 증명“? 다음 카테고리의 웹사이트 you.experience-porthcawl.com 에서 귀하의 모든 질문에 답변해 드립니다: you.experience-porthcawl.com/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 당신을 위한 쉬운 수학 (Easy Math for you) 이(가) 작성한 기사에는 조회수 744회 및 좋아요 14개 개의 좋아요가 있습니다.
페르마 의 소정리 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 페르마의 소정리 설명 및 증명 – 페르마 의 소정리 주제에 대한 세부정보를 참조하세요
#정우의쉬운수학 #페르마의정리 #페르마의마지막정리
페르마의 소정리를 빠르고 간단하게!!
페르마 의 소정리 주제에 대한 자세한 내용은 여기를 참조하세요.
페르마의 소정리 – 위키백과, 우리 모두의 백과사전
수론에서 페르마의 소정리(Fermat小定理, 영어: Fermat’s little theorem)는 어떤 수가 소수일 간단한 필요 조건에 대한 정리이다. 추상적으로, 소수 크기의 유한체 위 …
Source: ko.wikipedia.org
Date Published: 3/5/2021
View: 7455
페르마의 소정리 – 나무위키
눈으로 보이는 간결성만큼 효과도 매우 강력한 정리이다. 정수론에서 별 되도 않는 자명한 명제를 증명한답시고 붙잡고 있다고 ‘착각하던’ 사람들도 합동 …
Source: namu.wiki
Date Published: 5/4/2021
View: 5862
페르마의 소정리 (내용과 증명) – 네이버 블로그
페르마의 소정리는 모든 소수에 대해 항상 성립하는 공식입니다. 공식이 일반적으로 우리가 떠올리는 등식이 아닌 합동식이라 합동식이 뭔지 모르시는 …
Source: m.blog.naver.com
Date Published: 5/10/2021
View: 6388
PS를 위한 정수론 – (3) 페르마의 소정리와 활용 (이항 계수, 밀러
[목차] 1. 페르마의 소정리 2. 오일러 정리 3. 활용 1) 이항 계수 nCr 빠르게 구하기 4. 활용 2) 밀러-라빈(Miller-Rabin) 소수 판별법 1.Source: rebro.kr
Date Published: 6/17/2021
View: 9742
페르마의 소정리 – 기계인간 John Grib
페르마의 소정리. Fermat’s little theorem. created: 2019.03.02 · updated: 2020.04.21 · 편집하기 / 의견 남기기 · #math. 정리. 계산 예제. 유사소수.
Source: johngrib.github.io
Date Published: 2/14/2021
View: 3603
[정보보호] 페르마의 소정리 ( Fermat’s Little Theorem ) – sweetdev
이 페르마의 리틀 정리는 지수계산을 쉽게 하는걸 도와준다. 예를 들어 p=11, a=6으로 정하면 6^10 mod 11 = 1이다. 증명. 집합 A를 { …
Source: sweetdev.tistory.com
Date Published: 10/4/2021
View: 6783
페르마 소정리 – [정보통신기술용어해설]
페르마의 소정리 (Fermat’s Little Theorem) ㅇ p가 소수이고, a와 p가 서로소이면, – ap-1 ≡ 1 (mod p) ㅇ 즉, – ap-1를 소수 p로 나누면, …
Source: www.ktword.co.kr
Date Published: 8/25/2021
View: 4382
페르마의 소정리(Fermat’s Little Theorem) – Tistory
페르마의 소정리(Fermat’s Little Theorem). -> 우선 페르마의 소정리를 활용하기 위해서는 기본적으로 모듈러 산술(연산)과 합동식에 대한 이해가 …
Source: sskl660.tistory.com
Date Published: 3/11/2022
View: 2126
정수론 (5) – 페르마의 소정리 – Ernonia
저번에 합동식에서 나눗셈을 하기 위한 조건에 대해서 알아보았습니다. 이 내용을 바탕으로 정수론에서 매우 중요하게 다뤄지는 정리인 페르마 소정리 …
Source: dimenchoi.tistory.com
Date Published: 6/6/2022
View: 4436
주제와 관련된 이미지 페르마 의 소정리
주제와 관련된 더 많은 사진을 참조하십시오 페르마의 소정리 설명 및 증명. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 페르마 의 소정리
- Author: 당신을 위한 쉬운 수학 (Easy Math for you)
- Views: 조회수 744회
- Likes: 좋아요 14개
- Date Published: 2021. 3. 4.
- Video Url link: https://www.youtube.com/watch?v=ahJxDcH9JEo
위키백과, 우리 모두의 백과사전
수론에서 페르마의 소정리(Fermat小定理, 영어: Fermat’s little theorem)는 어떤 수가 소수일 간단한 필요 조건에 대한 정리이다. 추상적으로, 소수 크기의 유한체 위의 프로베니우스 사상이 항등 함수임을 의미한다.
정의 [ 편집 ]
p {\displaystyle p} 가 소수이고, a {\displaystyle a} 가 정수라고 하자. 페르마의 소정리에 따르면, 법 p {\displaystyle p} 에서 a p {\displaystyle a^{p}} 와 a {\displaystyle a} 는 서로 합동이다.
a p ≡ a ( mod p ) {\displaystyle a^{p}\equiv a{\pmod {p}}}
위 식은 p ∣ a {\displaystyle p\mid a} 일 때 자명하게 성립한다. 만약 p ∤ a {\displaystyle p
mid a} 일 경우, 양변을 약분하여 다음과 같이 쓸 수 있다.
a p − 1 ≡ 1 ( mod p ) ( a ≠ 0 ) {\displaystyle a^{p-1}\equiv 1{\pmod {p}}\qquad (a
eq 0)}
이는 모든 소수가 만족시키는 필요조건이지만, 충분조건이 아니다. 즉, 페르마의 소정리에 나타난 합동식을 만족하는 수가 반드시 소수가 되지는 않는다.
a b − 1 ≡ 1 ( mod b ) {\displaystyle a^{b-1}\equiv 1{\pmod {b}}}
를 만족하면서 소수가 아닌 b {\displaystyle b} 를, a {\displaystyle a} 를 밑수로 하는 카마이클 수라고 부른다.
역사 [ 편집 ]
피에르 드 페르마의 이름이 붙어 있지만, 페르마는 이 정리를 언급했을 뿐, 정확한 증명을 제시하지는 않았다. 현재 기록상 남아 있는 증명 가운데 최초는 고트프리트 라이프니츠의 것이다.
증명 [ 편집 ]
페르마의 소정리를 증명하는 방법은 여러 가지가 있을 수 있지만, 가장 쉬운 방법으로 합동식을 이용하는 방법이 있다. 그 증명 방법을 나타내면 다음과 같다.
a {\displaystyle a} p {\displaystyle p} a , 2 a , 3 a , ⋯ , ( p − 1 ) a {\displaystyle a,\ 2a,\ 3a,\ \cdots \ ,\ (p-1)a} p − 1 {\displaystyle p-1} p {\displaystyle p} 나머지는 모두 다르다. 증명 : 귀류법으로, 두 수 i a {\displaystyle ia} j a {\displaystyle ja} 0 < i < j < p {\displaystyle 0
페르마의 소정리 (내용과 증명)
“임의의 세제곱수는 다른 두 세제곱수의 합으로 표현될 수 없고, 임의의 네제곱수 역시 다른 두 네제곱수의 합으로 표현될 수 없으며, 일반적으로 3 이상의 지수를 가진 정수는 이와 동일한 지수를 가진 다른 두 수의 합으로 표현될 수 없다. 나는 이것을 경이로운 방법으로 증명하였으나, 책의 여백이 충분하지 않아 옮기지는 않는다.”
모르는 사람이 없을법한 그 유명한 페르마의 마지막 정리입니다.
페르마는 이렇게 겁나 어려운 문제를 만들어놓고서는 ‘증명하려고? 엿먹어 니가해^^’ 식으로 문제에 대한 증명을 적지 않는 것으로 꽤나 악명 높았습니다.
페르마의 소정리도 마찬가지 문제입니다. 물론 페르마의 마지막 정리보다는 훨씬 쉽지만요 ㅎㅎ;;
페르마가 띡 써놓고 ‘증명해 봐^^ 쉬운 문제임. 시간 별로 안걸릴거야’ 라고 써놓고 친구에게 보낸 걸 라이프니츠(미적분을 만든 사람입니다. 죽이고 싶겠지만 계산기를 만든 사람이기도 하니 참으세요. 뭐 어차피 이미 돌아가셨지만)가 증명해냈죠.
페르마의 소정리는 모든 소수에 대해 항상 성립하는 공식입니다.
공식이 일반적으로 우리가 떠올리는 등식이 아닌 합동식이라 합동식이 뭔지 모르시는 분들은 잠깐 여기를 클릭하는 것도 괜찮을 듯 합니다(는 제 글의 조회수를 올리기 위함입니다)
<내용>
일단 페르마의 소정리가 뭔지 한번 보도록 합시다.
입니다.
뭔..개소린지 모르겠죠?
일단 첫 줄부터 모르겠습니다. a가 정수고 p가 소수인 건 알겠는데,
이건 여러분 대다수는 처음 보는 기호일 것 같네요.
b가 a의 배수일 때 a|b 라고 표기하고
b가 a의 배수가 아니면.. 이렇게 표현합니다. (키보드로 입력할 수 없네요)
즉, 는 a가 임의의 소수 p의 약수가 아니란 말이므로, a≠p 란 말입니다.
별로 중요한 조건이 아니기에 생략하기도 합니다. (여기에서라든가)
<증명>
a, 2a, 3a, 4a, … , (p-1)a
이렇게 총 (p-1)개의 수가 있다고 합시다.
정리1) 위 수들을 p로 나눈 나머지는 모두 다르다
증명)
가령, p로 나눴을 때 나머지가 같은 두 수 ma, na 가 있다고 합시다. (0
이상입니다.
수식을 많이 넣어서 쓰는데 시간은 오래 걸렸는데 정작 글은 생각처럼 길지 않군요..ㅇㅅㅇ
Dimen이였습니다.
PS를 위한 정수론 – (3) 페르마의 소정리와 활용 (이항 계수, 밀러-라빈)
728×90
반응형
[목차]1. 페르마의 소정리
2. 오일러 정리
3. 활용 1) 이항 계수 nCr 빠르게 구하기
4. 활용 2) 밀러-라빈(Miller-Rabin) 소수 판별법
1. 페르마의 소정리 (Fermat’s little theorem)
페르마의 소정리는 다음과 같다.
“소수 $p$와 정수 $a$에 대해서 $a^p \equiv a \; (mod\;p)$”
만약 $a$와 $p$가 서로소이면 $a^{p-1} \equiv 1 \; (mod \;p)$ 를 만족한다.
짧지만 생각보다 PS에서 되게 많이 사용되므로 꼭 알아두는 것이 좋다.
증명 과정은 수학적 귀납법을 이용한다. (이 블로그를 참고했다)
먼저, $a$가 $p$ 이상이면, modular의 성질에 의해서 $p$로 나눈 나머지로 계산해도 동일하므로, $0 \leq a \leq p-1$ 범위의 정수에서만 증명해도 충분하다.
1. $a = 0$
$a$가 $0$인 경우에는 $0^p = 0 \equiv 0 \; (mod\;p)$ 로 자명하다.
2. $a = k$ 일 때 성립한다고 가정
3. $a = k+1$인 경우
$a = k$일 때 성립한다고 가정했으므로, $k^p \equiv k \;(mod\;p)$ 를 만족한다.
고등학교 때 배운 이항 계수의 성질인 $(1+x)^n = \sum_{i = 0}^{n} \binom{n}{i}x^i $을 떠올려보자.
이 식을 이용하면 $(k+1)^p = \sum_{i=0}^{p} \binom{p}{i} k^i$를 만족한다.
$\binom{p}{i} = \frac{p!}{i!(p-i)!}$ 이고, $p$가 소수이므로 $1 \leq i \leq p-1$ 에 대해서 분모에는 $p$가 존재하지 않는다.
따라서 $\binom{p}{i}$는 모든 $1 \leq i \leq p-1$에 대해서 항상 $p$로 나누어 떨어진다.
그리고 $i = 0, p$ 에 대해서는 $\binom{p}{i}= 1 $을 만족하므로 아래의 식을 만족한다.
$(k+1)^p \equiv \sum_{i=0}^{p} \binom{p}{i} k^i \equiv k^p + 1 \; (mod\; p)$
2번 가정에 의해서 결국 $(k+1)^p \equiv k + 1 \; (mod\;p)$ 를 만족하므로 $a = k+1$인 경우에도 성립한다.
따라서 수학적 귀납법에 의해서 페르마의 소정리는 모든 정수 $a \geq 0$ 에 대해서 만족한다. Q.E.D.
$a$와 $p$가 서로소인 경우는 어떻게 식이 유도될까?
$a^p \equiv a \; (mod\;p)$이므로, $a^p – a = a(a^{p-1} – 1)$이 $p$로 나누어 떨어진다.
이때 $a$와 $p$가 서로소이므로 $a^{p-1} – 1$이 $p$로 나누어 떨어진다.
따라서, $a^{p-1} \equiv 1 \;(mod\;p)$ 를 만족한다.
여담으로, $a^{p-1} \equiv 1 \;(mod\;p)$ 를 만족한다고 해서 모든 $p$가 항상 소수인 것은 아니다.
$a^{b-1} \equiv 1 \;(mod\;b)$ 를 만족하는 소수가 아닌 $b$를 ‘$a$를 밑수로 하는 카마이클 수 ‘ 라고 부른다.
2. 오일러 정리
위의 페르마의 소정리를 이해했다면, 오일러 정리는 쉽게 이해할 수 있다.
오일러 정리는 다음과 같다.
“임의의 정수 $a$와 $n$이 서로소일 때, $a^{\phi(n)} \equiv 1 \;(mod\;n)$ 을 만족한다”
여기서 $\phi(n)$은 오일러 파이 함수로, n과 서로소인 n이하의 양의 정수의 개수를 의미한다.
따라서 오일러 정리에서 $n$이 소수인 경우가 페르마의 소정리임을 알 수 있으므로,
페르마의 소정리는 오일러 정리의 특수 케이스 라고 생각하면 된다.
증명 과정은 위의 증명과 유사하므로 따로 서술하지는 않겠다.
3. 활용 1) 이항 계수 nCr 빠르게 구하기
페르마의 소정리의 활용으로 많이 알려져 있으면서도 꽤 많이 이용되는 내용이다.
이 글을 통해서 알게 되었다면, 더 이상 그들만의 웰논이 아니다….!
여기서 설명할 내용은 대부분의 문제에서 주어지는 적당한 $n$과 $r$의 범위에 대해서 (10만 ~ 100만 정도) 구할 수 있는 방식이다.
(더 빠르고 다양한 방법들은 따로 정리할 예정이다)
먼저, 주어지는 $n$과 $r$의 범위가 $O(nr)$의 시간과 공간복잡도로 충분히 수행 가능하다면
파스칼의 삼각형으로 이차원 배열을 선언하여 미리 전처리해두면 된다.
$\binom{n}{r} = \binom{n-1}{r-1} + \binom{n-1}{r}$ 을 이용하자.
문제는, $n$과 $r$이 10만 이상과 같은 큰 범위인 경우에는 위의 방식을 이용하지 못한다.
따라서 $\binom{n}{r} = n!/(r!(n-r)!)$을 직접 계산해주어야 한다.
이런 경우에는 항상 어떤 소수 p에 대한 나머지를 구하는 방식이므로 최종적으로
$\binom{n}{r} = n!/(r!(n-r)!) \;mod\;p$ 을 구하는 것을 목표로 하자. (p가 소수가 아니라면 훨씬 복잡하다. 추후 정리)
일단 분자인 $n!$을 $mod\;p$에 대해서 계산해주는 것은 크게 어렵지 않다. 하지만 이를 $mod\;p$에 대해서 $r!(n-r)!$로 나누어 주는 것이 쉽지 않다.
modular에 대해서 잘 모르는 사람들이 많이 하기 쉬운 실수가 $r!(n-r)!$을 $p$로 나눈 나머지를 $n!$에 나누는 것이다.
이는 간단한 예시만 만들어봐도 성립하지 않는 것을 알 수 있다.
여기서 페르마의 소정리가 이용된다. 핵심 아이디어는 $r!(n-r)!$을 나눠주는 것이 아니라, $r!(n-r)!$의 역원을 곱해준다.
$a^{p-1} \equiv 1 \;(mod\;p)$ 를 만족하므로, $mod\;p$에 대해서 $a$의 역원은 $a^{p-2}$이다.
따라서 $\binom{n}{r} \equiv n!(r!(n-r)!)^{p-2} \;(mod\;p)$ 를 만족하므로, 이제는 곱셈만 존재하기 때문에 modular 연산을 편하게 해주면 된다.
www.acmicpc.net/problem/11401
이 문제가 위의 설명을 그대로 적용하면 되는 문제이다.
다만 $p$가 1e9 + 7이므로, 단순히 $(r!(n-r)!)^{p-2}$를 계산하게 되면 당연히 시간이 오래 걸린다.
이를 해결하기 위해서는 “분할 정복을 이용한 거듭제곱”을 이용해주어야 한다.
이 개념을 아직 모른다면 꼭 공부해두자.
[소스 코드]#include
#define ll long long #define MOD 1000000007 using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N, K; cin >> N >> K; ll ans = 1; for (int i = K+1; i <= N; i++) { ans = (ans*i) % MOD; } ll A = 1; for (int i = 1; i <= N - K; i++) A = (A*i) % MOD; ll k = MOD - 2; while (k > 0) { if (k % 2) { ans = (ans*A) % MOD; } k /= 2; A = (A*A) % MOD; } cout << ans; } 따라서, 이항 계수 $\binom{n}{r} \; mod\;p$ 를 구하는데 걸리는 시간은 $O(nlogp)$가 된다. 하지만 만약 이항 계수를 구하는 쿼리가 여러 개 들어오게 된다면 어떻게 될까? 쿼리가 들어올 때마다 계산을 해준다면 $O(Qnlogp)$가 되므로 많은 쿼리에 대해서 계산하기 어렵다. 이에 대해서는 팩토리얼 값들을 미리 전처리해두면 가능하다. (자세한 내용은 다음 게시물에서 설명할 예정이다) 4. 활용 2) 밀러-라빈 (Miller-Rabin) 소수 판별법 먼저, 이 내용은 이전에 써두었던 게시물과 큰 차이가 없다. 순서에 맞게 깔끔하게 정리하고자 다시 쓴다. 밀러-라빈 소수 판별법은 $N$이 소수인지 '확률적으로' 판단할 수 있는 방법이다. $N$이 매우 커서 $O(\sqrt{N})$ 의 시간 내에 판별하기 어려울 때 이용할 수 있다. '확률적으로'라는 의미는, 밀러-라빈 소수 판별법을 이용했을 때, $N$이 '합성수'이거나 '아마도 소수일 것이다' 라고 판단할 수 있다는 것이다. 대신, PS에서 이용되는 큰 수(long long)의 범위 내에서는 소수인지 정확히 판단이 가능하다. $N$이 2가 아닌 소수라고 가정하자. 페르마의 소정리에 의해서 어떤 양의 정수 $a$에 대해서 $a^{N-1} \equiv (mod\; N)$ 을 만족한다. 그리고 $N$이 2가 아닌 소수이므로 $N-1$은 짝수이고, $N-1$을 홀수가 될 때까지 2로 나눠주면 다음과 같다. $N-1 = d \times 2^r$ ($d$ = 홀수, $r$ = 자연수) 이를 페르마의 소정리 식에 대입해주면 $a^{d\times2^r} \equiv 1\;(mod\;N)$ → $(a^{d\times2^{r-1}})^2 \equiv 1\;(mod\; N)$을 만족한다. 여기서 다음의 정리가 이용된다. "소수 $p$에 대해서 $x^2 \equiv 1(mod\;p)$ 이면, $x \equiv -1 (mod\;p)$ 또는 $x \equiv 1 (mod\;p)$를 만족한다" ($x^2-1$이 $p$의 배수이므로, $x-1$ 또는 $x+1$이 $p$의 배수가 된다) 이 정리를 이용하면 $a^{d\times2^{r-1}} \equiv -1\;(mod\;N)$ 또는 $a^{d\times2^{r-1}}\equiv 1\;(mod\;N)$을 만족한다. 만약 후자인 경우에는 다시 위 정리를 이용할 수 있고, 계속해서 후자로 나오는 경우에는 최종적으로 $a^d \equiv 1\;(mod\;N)$ 또는 $a^d\equiv -1\;(mod\;N)$ 의 결과가 나온다. 이후에는 $d$가 홀수이므로 더 이상 정리를 이용하지 못한다. 지금까지의 내용을 정리하면 $N$이 소수라면 $N$보다 작은 양의 정수 $a$에 대해서 다음 둘 중 하나를 만족한다고 할 수 있다. 1. $a^d \equiv 1 \;(mod\;N)$ 2. $a^{d\times2^r} \equiv -1 \;(mod\;N)$ $for$ $some$ $r$ $(0\leq r < s)$ 여기서 $N$이 "아마도 소수일 것이다" 라고 확률적으로 말하는 이유는 $N$이 소수가 아니더라도 특정한 $a$에 대해서 이를 만족할 수 있기 때문이다. 따라서 $N$이 "소수이다" 라고 단정 짓기 위해서는 최대한 많은 $a$를 적용시켜보아야 한다. int 범위의 $N$을 판별하기 위해서는 $a = 2, 7, 61$ 세 수에 대해서만 만족하면 $N$을 소수라고 할 수 있고, long long 범위의 $N$을 판별하기 위해서는 $37$ 이하의 소수들에 대해서만 모두 만족하면 $N$을 소수라고 할 수 있다고 알려져 있다. 반대로 $N$이 합성수라면 1 또는 -1이 아닌 다른 값이 나머지로 나올 것이다. 코드로 구현하면 아래와 같다. [소스 코드] #include using namespace std; using ll = long long; int miller_base[] = { 2,3,5,7,11,13,17, 19,23,29,31,37 }; // long long 기준 int miller_base[] = { 2, 7, 61 }; // int 기준 ll mpow(ll x, ll y, ll mod) { //x^y (mod) ll res = 1; x %= mod; while (y) { if (y % 2) res = (res*x) % mod; y /= 2; x = (x*x) % mod; } return res; } //if n is composite = false. prime = true bool miller(ll n, ll a) { if (n <= 1) return false; if (a%n == 0) return true; //판별하는 a가 모두 소수이므로 n도 소수 ll k = n - 1; while (1) { ll tmp = mpow(a, k, n); //a^k if (tmp == n - 1) return true; //a^k = -1 (mod n) if (k % 2) { //더이상 루트를 씌워줄 수 없는 상태. 소수이면 a^k = 1 또는 -1이 되어야 함. return (tmp == 1 || tmp == n - 1); } k /= 2; } } int main(void) { ll n; cin >> n; for (int i = 0; i < miller_base.size(); i++) { if (miller(n, miller_base[i]) == false) { cout << "Composite!"; return 0; } } cout << "Prime!"; } PC로 보시는 것을 권장합니다. 피드백은 언제나 환영입니다. 댓글로 달아주세요 ^-^ 728x90 반응형
페르마의 소정리
정리
If \(p\) is prime and \(a\) is an integer not divisible by \(p\), then
\(a^{p−1} ≡ 1 (\bmod p)\)
Furthermore, for every integer \(a\) we have
\(a^p ≡ a (\bmod p)\)
\(p\) 가 소수이고 \(a\) 가 \(p\) 로 나누어지지 않는 정수이면 \(a^{p−1} ≡ 1 (\bmod p)\) 이다.
그리고, 모든 \(a\) 에 대하여 \(a^p ≡ a (\bmod p)\) 이다.
계산 예제
\(7^{222} \bmod 11\) 을 계산하라.
7 보다 큰 소수 11 을 사용해 페르마의 소정리에 적용해보면 다음을 얻을 수 있다.
이제 \(7^{222} \bmod 11\)을 단순하게 정리할 수 있다.
따라서 답은 5 다.
유사소수
pseudoprime
페르마의 소정리는 편리하지만 주의해야 할 점이 있다.
\(p\) 가 소수이면 페르마의 소정리를 만족한다. 하지만 페르마의 소정리를 만족한다고 해서 \(p\) 가 반드시 소수인 것은 아니다.
즉, \(p\) 가 합성수인데도 \(a^{p − 1} ≡ 1 ( \bmod p)\) 를 통과하는 경우가 있다.
이런 합성수들을 유사소수라 부른다.
Let \(b\) be a positive integer. If \(n\) is a composite positive integer, and \(b^{n−1} ≡ 1 (\bmod n)\), then \(n\) is called a pseudoprime to the base \(b\).
\(b\) 를 양의 정수라 하자.
\(n\) 이 양의 정수인 합성수이고, \(b^{n-1} ≡ 1 (\bmod n)\) 이면 \(n\)을 \(b\)를 밑수로 하는 유사소수 라 부른다.
유사소수 예제
\(b = 2\)일 때, 341 은 유사소수인가?
유사소수인지 확인하려면 두 조건을 체크하면 된다.
합성수인가? 다음 합동식이 참인지 확인하면 된다. \(2^{341 – 1} ≡ 1 (\bmod 341)\).
즉, \(2^{340}\) 을 341 로 나눈 나머지가 1 인지 확인하면 된다.
일단 341 은 합성수가 맞다. \(341 = 11 \times 31\).
이제 \(2^{340}\)을 341로 나누면 나머지가 1 이 나오는지를 확인하면 된다.
\(2^{340}\)은 꽤 큰 수이기 때문에 나머지를 구하는 것은 까다로운 일이다.
그러나 페르마의 소정리를 활용하면 \(2^{10}\)을 11로 나눈 나머지가 1 이라는 사실을 쉽게 확인할 수 있고, 이를 이용해 \(2^{340} \bmod 341\) 을 쉽게 풀 수 있다.
따라서 다음과 같이 확인할 수 있다.
341 은 2를 밑수로 하는 유사소수이다.
카마이클 수
Carmichael number
A composite integer \(n\) that satisfies the congruence \(b^{n−1} ≡ 1 (\bmod n)\) for all positive integers \(b\) with \(\gcd(b, n) = 1\) is called a Carmichael number. (These numbers are named after Robert Carmichael, who studied them in the early twentieth century.)
\(\gcd(b, n) = 1\) 인 모든 양의 정수 \(b\) 에 대하여, \(b^{n-1} ≡ 1 (\bmod n)\)을 만족하는 합성수인 정수 \(n\)을 카마이클 수라 부른다.
카마이클 수 예제
561 은 카마이클 수인가?
카마이클 수인지 확인하려면 두 조건을 체크하면 된다.
합성수인가? \(\gcd(b,n)\)인 모든 양의 정수 \(b\)에 대하여 \(b^{561-1} ≡ 1 (\bmod 561)\) 이 성립하는가?
일단 561 은 합성수가 맞다. \(561 = 3 \times 11 \times 17\).
이제 \(b^{560} ≡ 1 (\bmod 561)\) 을 확인하자.
561 의 소인수를 페르마의 소정리 \(a^{p-1} ≡ 1 (\bmod p)\) 에 넣어 다음과 같이 정리할 수 있다.
그러므로 \(b^{560}\) 에 대해 다음과 같은 사실을 알 수 있다.
따라서 561 과 서로소인 모든 양의 정수 \(b\)에 대해 다음이 성립한다.
(만약 \(b\)가 561 과 서로소가 아니라면? 가령 \(b\) 가 11 의 배수라면 \(\mod 11\) 의 결과가 1 이 아니라 0 이 된다. 따라서 위의 합동식은 성립하지 않게 된다.)
참고문헌
[정보보호] 페르마의 소정리 ( Fermat’s Little Theorem )
[version 1]조건: p가 소수이고 a가 하나의 정수로서 p는 a를 나누지 못한다.
이 페르마의 리틀 정리는 지수계산을 쉽게 하는걸 도와준다.
예를 들어 p=11, a=6으로 정하면 6^10 mod 11 = 1이다.
증명
집합 A를 {1, 2, …, p-1} 이라고 하자.
집합 A에 a를 곱한 {a, 2a, …, (p-1)a} 집합을 집합 B라고 하자.
조건에 따라 p는 a를 나누지 못한다.
따라서 집합 B에다가 mod p를 취해주면 집합 A와 같아진다.
모듈러의 성질인,
(A * B) mod C = (A mod C * B mod C) mod C임을 이용하자!
A, B에 있는 원소들을 각각 곱한다.
1 * 2 * … * (p-1) = (a mod p) * (2a mod p) * … * (((p-1)*a) mod p)
양변에 mod p를 취해준다.
(1 * 2 * … * (p-1)) mod p = ((a mod p) * (2a mod p) * … * (((p-1)*a) mod p)) mod p
= (a* 2a * … (p-1)*a) mod p
= (a^(p-1) * 1 * 2 * … * (p-1)) mod p
양변에서 1*2*…(p-1)을 지우면 1 = a^(p-1) mod p이다.
[version 2]곱셈역 구하기
첫번째 버전에다가 양변에 a^(-1) mod p 곱해주고, mod p 하면 된다.
의의
이 정리는 꽤 쩌는 정리인데, 엄청 큰 수에다가 mod p를 했더니 1인걸 구할 수 있다! 엄청 큰 수를 계산하지 않아도 된다.
또한 이 정리를 이용하면, 모듈로 값이 소수인 경우 곱에 관한 역원을 빠르게 구할수 있다.
만약 p가 소수이고 a가 정수로서 p로 나누어지지 않는 수라면, a^(-1) mod p = a^(p-2) mod p 이다.
a^(-1) mod p는 p에 대한 a의 곱셈역이다. 곱셈역 포스팅을 참조해주세요.
이를 사용하면 extended euclidean algorithm을 안쓰고도 문제를 풀 수 있다. mod p인 경우만 되긴 하지만,,,ㅠ
예시
Euler’s Theorem #1
오일러의 첫번째 정리는, 페르마의 정리의 일반화된 버전이다. 오일러 정리에서 n이 소수인걸로 한정하면 페르마의 정리가 된다.
a^(pi(n)) mod n = 1
pi(n) = n보다 작고 n과 서로소인 수의 집합의 개수
Euler’s Theorem #2
If n = p * q and a < n, then a ^(k* phi(n) +1) mod n = a.
페르마의 소정리(Fermat’s Little Theorem)
*페르마의 소정리(Fermat’s Little Theorem)
-> 우선 페르마의 소정리를 활용하기 위해서는 기본적으로 모듈러 산술(연산)과 합동식에 대한 이해가 선행되어야 한다. 다음 포스팅을 참고하도록 하자. sskl660.tistory.com/75
-> 페르마의 소정리는 특정한 상황에서 어떤 수의 나머지를 빠르게 구할 때 사용이 가능 하다. 특정한 상황은 아래 정리를 참고하도록 하자.
페르마의 소정리
쉽게 말해 a^(p – 1)과 1을 p로 나눈 나머지는 같다, 즉, a^(p – 1)의 나머지는 1이다라는 말이다.
-> 예를 들어, 97이라는 소수가 있고 5는 97의 배수가 아니기 때문에 5^(97 – 1) ≡ 1 (mod 97)이 성립한다는 것을 위 정리를 통해 알 수 있다. 여기에서 합동 관계의 거듭 제곱에 관련된 성질을 이용하면, 어마어마하게 큰 수의 나머지도 간단하게 구할 수 있는 경우가 존재함을 알 수 있게된다.
정수론 (5) – 페르마의 소정리
피에르 드 페르마 (1607 – 1665)
저번에 합동식에서 나눗셈을 하기 위한 조건에 대해서 알아보았습니다.
이 내용을 바탕으로 정수론에서 매우 중요하게 다뤄지는 정리인 페르마 소정리에 대해서 알아보겠습니다.
페르마 소정리는 아래와 같습니다. (단, $p$는 소수, $a$는 $p$의 배수가 아닌 정수)
$$
a^{p-1} \equiv 1 \mod p
$$
예를 들어서 $p = 7, a = 12$ 라고 하면,
$$
12^{7-1} = 12^{6} = 2985984 \equiv 1 \mod 7
$$
이 됩니다. 암호학의 핵심이 되는 정리라고 할 수 있죠.
이 정리가 어떻게 응용될 수 있는지는 나중에 더 보기로 하고, 이번 글에서는 이 정리의 증명에 집중하겠습니다.
페르마 소정리의 증명
다음과 같은 크기 $p-1$의 집합을 살펴보겠습니다. (단, $p$는 소수)
$$
\lbrace 1, 2, \cdots, p-1 \rbrace
$$
이 집합의 모든 원소에 $a$ 를 곱하겠습니다. (단, $a$는 $p$의 배수가 아닌 정수입니다)
$$
\lbrace a, 2a, \cdots, (p-1)a\rbrace
$$
먼저 다음 사실을 보이는 것이 이 증명의 핵심입니다.
$$
\lbrace 1, 2, \cdots, p-1 \rbrace = \lbrace a, 2a, \cdots, (p-1)a \rbrace \mod p
$$
예를 들어서 $p = 5, a = 2$라고 하면,
$\lbrace 1, 2, 3, 4\rbrace$에 $2$를 곱한 집합 $\lbrace 2, 4, 6, 8 \rbrace$는 $\bmod 5$에서 $\lbrace 2, 4, 1, 3 \rbrace = \lbrace 1, 2, 3, 4 \rbrace$가 됩니다.
위의 사실을 보이기 위해 아래의 사실을 보입시다.
$$ \lbrace a, 2a, \cdots, (p-1)a \rbrace \mod p \text{의 모든 원소들은 서로 다르다.} $$
증명은 귀류법을 쓰면 간단합니다. $i
eq j$인데 $ia \equiv ja \mod p$인 $i, j$가 존재한다고 가정합시다.
$p$가 소수이므로 저번 글에서 봤었듯 양변을 $a$로 나눌 수 있습니다.
양변을 나누면 $i \equiv j \mod p$가 되며, $1 \leq i, j \leq p-1$ 이므로 $i = j$입니다. 이는 가정에 모순입니다.
따라서 $\lbrace a, 2a, \cdots, (p-1)a\rbrace$와 $\lbrace 1, 2, \cdots, p-1 \rbrace$은 같은 집합입니다.
두 집합이 법 $p$에 대해 동일하므로 이 두 집합의 모든 각 원소를 곱한 값도 같을 것입니다.
$$
a^{p-1}(p-1)! \equiv (p-1)! \mod p
$$
$(p-1)!$과 $p$는 공통 인수를 가지지 않으므로 서로소입니다.
따라서, $(p-1)!$의 역원이 존재하며, 양변을 $(p-1)!$ 으로 나누면 아래의 식이 성립합니다.
$$
a^{p-1} \equiv 1 \mod p \quad \blacksquare
$$
기약잉여계
페르마 소정리의 증명 자체는 간단하지만, 이 과정에서 중요한 개념이 등장합니다.
$p$가 소수일 때 아래의 식이 성립합니다.
$$
\lbrace 1, 2, \cdots, p-1 \rbrace \equiv \lbrace a, 2a, \cdots, (p-1)a \rbrace \mod p)
$$
이런 형태의 집합은 정수론 곳곳에서 중요하게 쓰입니다. 그래서 이름도 있습니다. 바로 기약잉여계라고 합니다.
기약잉여계: 정수 $m$에 대하여 1부터 $m-1$까지 $m$과 서로소인 수들을 모아놓은 것
예를 들어 $9$ 기약잉여계는 $\lbrace 1, 2, 4, 5, 7, 8 \rbrace$가 되겠네요.
기약잉여계의 특징은 모든 원소가 역원을 가지기 때문에, 언제나 나눗셈이 가능하다는 점입니다.
이렇게 페르마 소정리에 대한 내용을 끝냅니다. 다음 글에서는 페르마 소정리의 일반화 버전인 오일러 정리에 대해 알아보겠습니다.
키워드에 대한 정보 페르마 의 소정리
다음은 Bing에서 페르마 의 소정리 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 페르마의 소정리 설명 및 증명
- 동영상
- 공유
- 카메라폰
- 동영상폰
- 무료
- 올리기
페르마의 #소정리 #설명 #및 #증명
YouTube에서 페르마 의 소정리 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 페르마의 소정리 설명 및 증명 | 페르마 의 소정리, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.