소수(수론)

덤프버전 :

파일:다른 뜻 아이콘.svg
은(는) 여기로 연결됩니다.
0과 1 사이의 실수, 또는 소수점을 이용하여 나타낸 작은 수(小數)에 대한 내용은 소수(기수법) 문서
소수(기수법)번 문단을
소수(기수법)# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
참고하십시오.






수 체계

[ 펼치기 · 접기 ]
사원수 [math(\mathbb H)]
↑ 확장 ↑
복소수 [math(\mathbb C)]
대수적 폐포, 행렬 표현, 순서쌍 구성 등 ↑
[[허수|{{{#000,#FFF 허수 [math(\mathbb{C}
\setminus \mathbb{R})]}}}]]
실수 [math(\mathbb R)]
완비화, 데데킨트 절단 등 ↑
무리수 [math(\mathbb{R} \setminus \mathbb{Q})]
유리수 [math(\mathbb Q)]
곱셈의 역원
정수가 아닌 유리수 [math(\mathbb{Q} \setminus \mathbb{Z})]
정수 [math(\mathbb Z)]
덧셈의 역원
음의 정수 [math(\mathbb{Z} \setminus \mathbb{N})]
범자연수 [math(\mathbb N_0)]
↑ 자연수의 집합론적 구성 ↑
[math(0)]
소수 [math(\mathbb P)] · 초실수 [math(\mathbb R^{\ast})] · 대수적 수 [math(\mathbb A)] · 초월수 [math(\complement {\mathbb A})] · 벡터 공간 [math(\mathbb V)]




1. 개요
2. 성질 및 미해결 문제
3. 학생들을 위한 부연
4. 표기 문제
5. 소수와 알고리즘, 암호
6. 소수 판정법 및 소인수분해
7. 여담



1. 개요[편집]


/ prime number

1, -1과 자기 자신, 자기 자신의 반수[1]로밖에 나누어떨어지지 않는 1 이외의 정수, 즉 양의 약수가 2개인 자연수를 의미한다.[2]

소수의 정의는 '1과 자기 자신으로밖에 나누어 떨어지지 않고 자기 자신의 곱셈의 역수가 없는 수'이다.[3]


2. 성질 및 미해결 문제[편집]


쌍둥이 소수는 p, p+2 모두 소수가 되는 순서쌍이다. 사촌 소수는 차가 4, 섹시 소수는 차가 6이 되는 소수 순서쌍이다.

2는 유일한 짝수 소수이다. 즉, 2를 제외한 모든 짝수는 합성수이며, 2를 제외한 소수는 모두 홀수이다. 사실 개요문단의 정의는 prime이 아닌 irreducible에 대한 정의이다. 소수(prime)의 실제 정의는 임의의 정수 a, b에 대해 p|ab이면 p|a or p|b를 만족할 때 p를 prime이라고 한다. 정수 집합에서는 이 정의가 같아서 상관없지만, 대수적 정수론에서는 irreducible이지만 prime이 아닌 경우가 존재한다.[4]

소수가 아니고 곱셈의 역수가 없는 수를 합성수(composite number)라고 한다. 쉽게 이해하기 위해 소수를 '약수가 2개인 수'로 정의하기도 한다. 참고로 1은 1과 자기 자신(1)으로만 나눠떨어지긴 하지만, 곱셈의 역수가 있는 1을 소수로 인정하면 소인수분해의 유일성이 사라지는 등의 문제로 인해 1은 소수가 아닌 것으로 약속했다. 따라서 1은 자연수이지만 소수도 아니고 합성수도 아니다.[5] 비슷하게 일반적인 1을 갖는 가환환 위에서도 곱셈의 역수를 가지는 원소는 소수도 합성수도 아닌 것으로 약속한다.

참고로 유리수와 같이 0 말고 모두 곱셈의 역수를 가지고 있는 경우는 모든 원소가 irreducible도 prime도 아니다. 이 두 개념은 0도 아니고 단위원[6]도 아닌 원소에 대해서만 정의되기 때문이다.

집합 기호로는 볼드체를 사용한 [math(\bold P)]나 칠판체를 사용한 [math(\mathbb P)]로 나타낸다.

기본적으로 모든 사칙연산에 대해 닫혀 있지 않다.[7]
  • [math(3+5=8 \notin \mathbb{P})]
  • [math(11-17=-6 \notin \mathbb{P})]
  • [math(2 \times 7 =14 \notin \mathbb{P})]
  • [math(29 \div 31 = \dfrac{29}{31} \notin \mathbb{P})]

후술할 소수 나열에선 알기 힘들지만 수가 커질수록 소수의 빈도는 점점 감소하며, 소수가 없는 아주 긴 구간들의 출현 빈도들이 높아진다. 이렇게 되면 계속 가다가 소수가 없는 구간의 길이가 1000조를 넘는다든가 심지어 언젠가는 아예 G(64)를 넘을 수 있다.[8] 이쯤 되면 결국 나중엔 소수가 절대 나오지 않게 되는 게 아닌가 하는 추측도 나올 수 있겠지만, 유클리드에 의해 소수는 무한히 많이 있다는 것이 증명되었다.[9] 오일러는 소수의 역수의 합이 발산한다는, 좀 더 강력한 정리를 증명하였다.[10] 더 나아가 2 이상의 자연수 [math(n)]에 대해 [math(n<p<2n)]을 만족하는 소수 [math(p)]가 항상 존재한다(베르트랑-체비쇼프 정리). 이 정리는 '[math(n)]이 [math(N)] 이상의 자연수이면 [math(n<p<f(n))]을 만족하는 소수 [math(p)]가 항상 존재한다' 꼴의 변종이 많이 있으며, 1952년에는 [math(N=25,\;f(n)=\displaystyle \frac{6n}{5})]이 증명되었고 2016년에는 [math(N=468991632,\;f(n)=\displaystyle n+\frac{n}{5000 \ln^2 n})]이 증명되었다. 소수의 크기는 '자연수의 진부분집합인 무한집합'인 이상 자연수와 동일한 [math(\aleph_0)]이다.

유클리드의 증명은 다음과 같다. 귀류법으로 소수가 유한하다고 가정하자. 그럼 그 소수들을 모두 나열한 목록 [math(p_1,\;p_2,\;p_3,\;\cdots,\;p_n)]을 생각할 수 있다([math(n)]은 소수의 개수). 이제 이 소수들을 몽땅 곱하고 1을 더한 수를 [math(N)]라고 하자. 즉, [math(N = p_1 p_2 \cdots p_n+1)]이다. 이때 [math(N)]은 [math(n)]개의 어떠한 소수로도(가정에 의하면, 모든 소수로) 나누어떨어지지 않으므로(1이 남으니까), [math(N)]가 새로운 소수이거나, 아니면 목록에 없는 새로운 소수로 나누어떨어질 수밖에 없다. 어느 쪽이든 간에 소수가 [math(n)]개뿐이라는 가정에 모순이므로 소수는 무한히 많다. 좀 더 자세한 내용은 네이버캐스트에서 다룬 글을 참조할 것. 이 증명법은 수학자 에르되시 팔이 생전에 말한 '그 책'(신이 갖고 있는 증명법을 적은 책)에 들어갈 만하다고 할 정도이며, 실제로 '하늘책의 증명'이라는 책에 맨 처음에 들어가 있다. 수학의 전문 지식이 없는 일반인들조차 명쾌하게 이해할 정도로 매우 우아한 증명으로 이름높다.

한편 위상수학을 이용해서 소수의 무한성을 증명할 수도 있다.# 이 증명도 위에서 말한 '하늘책의 증명'에 수록되어있다. 일반인은 물론 수학도들에게도 기괴함과 동시에 감탄스러운 증명으로 꼽히며, 제법 유명해지면서부터는 각종 위상수학 교과서들이 연습문제로 사골처럼 우려먹는 클리셰가 되었고, 대학 수업에서도 과제나 시험문제 등으로 흥행하고 있다.

소수 정리를 통해 큰 수 [math(n)] 이하의 소수의 개수를 근사적으로 구할 수 있다.

2 이상의 모든 자연수는 한 개 이상의 소수들의 곱으로 유일하게 나타낼 수 있고(산술의 기본 정리), 이 유일한 표현을 소인수분해라 한다. 어찌 보면 당연해 보이면서도 흥미로운 사실인데, 소수들의 성질만 연구해도 모든 정수의 성질을 알 수 있다는 의미이기 때문. 덕분에 소수는 자연수와 정수의 성질을 연구하는 정수론의 중심 탐구대상이었다.

하지만 소수의 성질을 밝히는 것은 생각보다 매우 어렵다. 많은 수학자들이 위 무한한 소수들의 분포나 규칙성을 밝혀내려고 했지만, 어느 누구도 정답이라고 할 만한 패턴을 밝혀내진 못했다. 현재까지도 소수에 관련된 다음처럼 많은 문제들이 남아서 호기심을 자극한다. 특정한 꼴의 소수가 무한한가 또는 소수 간격의 상한에 관한 문제가 많다.

  • 란다우 문제
독일의 에드문트 란다우가 1912년에 제시한 문제. 힐베르트의 문제와 비슷하게 기존의 문제 중 중요해 보이는 것을 요약한 것으로 제시된 지 100년이 넘어가는 데도 풀린 건 단 하나도 없다. 그나마 골드바흐의 약한 추측이 2013년에 증명되었으나 원래 버전은 아직 미해결이다.
4 이상 임의의 짝수를 두 소수의 합으로 나타낼 수 있는가. 약한 버전은 7 이상의 임의의 홀수를 세 소수의 합으로 나타낼 수 있는가. 이 추측의 경우는 400경까지의 짝수까지 성립함을 알아냈으나 현재 해당되지 않는 경우는 찾지 못했다.
차이가 2인 소수들의 쌍이 무한히 많은가. 이 외에도 차이가 4인 사촌 소수, 차이가 6인 섹시 소수가 무한이 존재하는가 하는 문제도 있다.
  • 르장드르의 추측
이웃한 두 제곱수 사이엔 항상 소수가 존재하는가. 여담으로 아래의 안드리카 추측의 약한 버전이다.
[math(M_n=2^n-1)] 꼴의 소수가 무한히 많은가. 여담으로 사실 [math(M_n)]이 소수일 때는 [math(n)]이 소수가 된다.
[math(F_n=2^{2^n}+1)] 꼴의 소수가 무한히 많은가. [math(n=0,1,2,3,4)]일 경우 소수이므로 페르마는 이를 모두 소수라고 생각했으나, [math(n=5)]일 경우 [math(F_5=4294967297)]은 641로 나누어떨어짐(즉, [math(F_5=641 \times 6700417))]을 오일러가 보였다. 이후 컴퓨터로 계산한 결과 [math(n)]이 5 이상이면, 40이 넘어서까지도 이러한 수 중에 소수는 발견되지 않았다.
어떤 소수 [math(p)]에 대해서 [math(2p+1)]도 소수가 되는 수 [math(p)]가 무한한가.
  • 안드리카의 추측
이웃한 두 소수의 제곱근의 차이는 항상 1 이하인가.[11]
  • 오페르만의 추측
n이 1보다 큰 정수라면 구간 [math((n^2-n,\;n^2))]과 [math((n^2,\;n^2+n))]에 소수가 각각 하나 이상 존재한다. 안드리카의 추측보다 강하다.
비록 수학의 미해결제가 많기는 하지만, 문제는 소수와 관련해서는 대부분의 문제들이 미해결이라는 것이다. 게다가 석사 정도는 되어야 이해라도 할 수 있는 다른 분야의 문제들과는 달리 중학생도 이해할 수 있을 만한 짧고 간결한 문제인데도![12] 다행히 '약한' 골드바흐의 추측은 2013년에 완전히 증명되었다. 해당 문서 참조.

현대 수학자들은 소수의 분포에 대해서 순수하게 무작위적이라는 가설을 세우고 있다. 소수의 개수는 특정 평균선을 기준으로 변동하는데, 그 변동하는 양에서는 주기성 같은 경향을 더 찾을 수가 없다는 이야기. 어떤 의미에서 이는 소수의 쉬운 패턴을 찾기란 힘들다는 사실을 암시한다. 물론 이런 이야기를 하는 수학자 자신들은, 이 믿음의 기초인 리만 가설에서조차 리만이 예견한 수준을 아직도 벗어나지 못하고 있다.

중국계 미국 수학자 장이탕이 증명한 바에 의하면 7000만 이하 차이가 나는 소수 쌍이 무한히 존재하며 후에 폴리매스 8 프로젝트를 통해 전 세계의 정수론 전문가들이 달려든 결과 차이가 246이하인 소수쌍이 무한하다는 것이 증명되었다. 지금까지 정수론에서 제기된 온갖 추측을 유리하게 가정해도 차이를 6 미만으로 줄일 수가 없어 정작 쌍둥이 소수 추측은 해당 방법으론 증명할 수 없다고 한다.

3. 학생들을 위한 부연[편집]


소수를 이야기할 때는 자연수만 생각하면 된다. 다시 말해 소수 이야기를 할 때는 음의 정수소수(0.1 같은 것)는 생각하지 않아도 좋다.
예를 들어 “-3은 소수인가?”라는 질문은 그냥 “3은 소수인가?”라는 질문과 똑같은 것이다. 소수의 정의인 “1과 그 자신으로만 나눠진다”는 수의 음양을 고려하지 않는 기준이며, “3은 1, 3, -1, -3 네 수로 나눌 수 있으니 소수가 아니다” 같은 말을 해서는 안 된다. 원래 약수는 음양을 따지지 않는 것이다.[13]

간혹 학생들이 “십진법 이외의 진법에도 소수가 있나요?”라는 질문을 하는데, 소수뿐 아니라 수의 모든 성질은 수의 진법에 전혀 영향을 받지 않는다. 만약 학생이 그런 질문을 한다면 그 학생은 진법의 개념을 본질적으로 잘못 이해하고 있는 것이다. 진법은 오직 우리가 수를 표기하는 방법일 뿐이며 수의 본질(즉 수량)에 전혀 영향을 주지 않는다. 예를 들어 바둑돌 세 개의 개수를 십진수로 '3(10)'으로 표기하든 이진수로 '11(2)'으로 표기하든 실제 개수가 달라지는 것은 아니다.[14]

만약 학생이 위의 설명을 이해하지 못한다면 실제로 십진법 외의 진법으로 소수를 나눠보도록 해 보자. 예를 들어 3을 2진법으로 나타낸 11(2) , 7을 5진법으로 나타낸 12(5) 모두 해당 진법으로 나눠보면 1과 그 자신 외의 수로는 나눠지지 않는 소수이다.

만약 십진법 이외의 진법으로 나눗셈 등의 사칙연산을 아직 할 수 없는 좀 더 저연령 학생인 경우, 바둑알이나 공 같은 물체를 이용하면 좋다. 학생에게 11을 바둑알로 표시해보라고 하자. 그러면 학생은 (일반적으로) 바둑알 11개를 일렬로 나란히 늘어놓을 것이다. 그러면 바둑알 10개만 남기고 끝의 바둑알 한 개를 떼어 그 윗줄로 옮겨주고, 아랫줄의 바둑알 10개가 “십”, 윗줄의 바둑알 한 개가 “일”, 합해서 “십 일”이며 이것이 바로 우리가 사용하는 십진법임을 이해시켜 주자. 이번에는 이 바둑알 11개를 7진법으로 나타내보라고 하자. 학생이 위의 설명을 이해했다면, 아랫줄에 바둑알 7개, 윗줄에 바둑알 4개를 늘어놓을 것이다. 즉 십진법 11은 7진법 14(7)임을 학생 스스로 이해할 수 있을 것이다. 그럼 이번에는 바둑알 12개로 같은 작업을 시켜보자. 십진법 12가 7진법 15(7)임을 학생이 이해할 수 있도록 해 주자.

이제 이 11개의 바둑알을 모아 학생에게 쥐어주고, 이를 서로 동일한 수의 바둑알들로 구성된 두 개 이상의 무더기로 등분해보라고 하자. 당연히 못 할 것이다. 그럼 이번에는 12개의 바둑알을 모아 동일한 작업을 시켜 보자. 바둑알 두 개씩 여섯 무더기(6x2), 세 개씩 네 무더기(4x3), 네 개씩 세 무더기(3x4), 여섯 개씩 두 무더기(2x6) 등 다양한 방법으로 등분할 수 있음을 학생이 알 수 있게 해 주자. 12와 같이 등분될 수 있는 수는 소수가 아니며, 11처럼 등분될 수 없는 수를 소수라 함을 이해시켜 주자.

또한 학생은 이를 통해, 11은 십진수로 11이라 표기하든 7진법으로 14(7)로 표기하든 간에 실제 수량은 변하지 않으며, 11이 등분될 수 없는 성질, 즉 1과 그 자신 이외의 수로 나눠질 수 있는 성질은 진법과 무관함을 이해할 수 있을 것이다.


4. 표기 문제[편집]


과거에는 '수'라고 표현했으나, 단어가 한자 + 한자 결합으로 이루어져 있을 때 중간에 사이시옷을 적지 않는 것으로 맞춤법을 고치면서[15] '소수'로 바뀌었고, 그 덕분에 0.1과 같은 소수(小數, decimal)와 혼동되지 않도록 유의해서 써야 한다. 표준 발음은 [소쑤]로, [소ː수]로 발음되는 소수와 명확히 구분된다. 그렇지만 대부분의 사람이 이를 [소수]라고 발음한다. 게다가 글로 써 두면 전혀 구별할 방법이 없어 한자로 쓸 수밖에 없다.

일부 수학자들은 수학의 고유 용어인 솟수를 국어학자들이 언어원칙을, 그것도 우리말의 아킬레스건이라는 악평을 듣는 사이시옷 원칙을 적용시켜 소수로 만들어버린 데 큰 불만을 갖고 있으며, 소수(少數, Minority)와 소수(素數, Prime), 소수(小數, Decimal)를 우리글로는 구별할 수 없는 상황을 정상이라고 보지 않는다. 심지어 20세기에는 솟수가 한자어가 아니라 "솟아오른 수"라는 의미라는 주장까지 펼치며[16] 솟수가 소수로 개명되는 것을 막으려 하기까지 했다.

게다가 사이시옷 원칙에는 여섯 가지 예외가 있으며[17], 언어학적 원리가 아니라 "이미 그렇게 굳어졌다"는 이유만으로 이처럼 많은 예외를 허용하면서도 '솟수'는 고집스럽게 금지하여 솟수와 소수의 구분을 불가능하게 만드는 것은 국립국어원이 수론에 무지하기 때문이라고밖에는 볼 수 없다.[18] 애당초 일반 언중이 수자, 회수, 차간에 시옷을 넣어 발음하게 된 이유는 숫자와 수자(여러 글자), 횟수와 회수(도로 가져옴), 찻간(열차나 버스의 내부)과 차간(차와 차 사이)의 혼동을 방지하기 위해서이며 이는 素數를 소수가 아니라 솟수로 발음하는 이유와 동일하다(소수와 구별하기 위해). 숫자, 찻간 등을 사이시옷 원칙에 예외로 한다면 솟수 역시 똑같은 이유로 예외가 되어야 할 것이다.

북한의 문화어로는 ‘씨수’라고 하며, 한국에서도 용어를 ‘씨수’로 바꾸자고 주장하는 수학자들이 있다. 발음이 다르고 용법이 다르다고는 하지만 어쨌든 표기가 동일한 것이 있으면 헷갈리는 것이 당연하기 때문에, 소수의 용어나 발음 문제는 가끔 등장하는 해묵은 이야기이기도 하다.

일본에서도 같은 용어를 쓰지만 小数(しょうすう)와 素数(そすう)로 발음도 다를 뿐더러 애초에 한자로 표기하기 때문에 문제가 안 된다.[19] 중국에서는 소수(素數)를 质数(zhìshù, 질수)라고 한다.

참고로 복소수(複素數, Complex Number)는 소수(素數, Prime Number)와는 관련이 없다. 복소수는 실수허수의 두 원소의 합으로 이루어진 수 집합으로, 소수의 범주보다 아득히 위에 있다.


5. 소수와 알고리즘, 암호[편집]


소수는 전통적으로 순수수학만의 영역에 속했지만, 20세기 후반 암호학과 컴퓨터의 발전으로 현실과 밀접한 관련을 맺고 있다.

공개열쇠 암호 체계(public-key cryptography)는 '암호화는 쉽지만 해독하기는 어렵다'라는 개념을 도입해 암호체계의 안정성을 높이는데, 이에 적합한 '연산은 쉬운데 역연산은 어려운' 예가 소인수분해인 것이다. 이 소인수분해의 특성을 쓰는 RSA 암호 체계는 아주 큰 소수 [math(p)]와 [math(q)]의 곱 [math(pq)]를 이용해 암호화를 하지만, 해독하려면 [math(p)]와 [math(q)] 각각이 필요하다. 예로 다섯 자리 숫자 둘을 곱하는 건 손으로도 금방 하지만, [math(pq=1459160519)]만 알려주고 p와 q의 쌍(=34583×42193)을 찾으라고 한다면 꽤 삽질이 필요할 것이다. 실제로 RSA에 쓰는 수가 몇 백여 자리의 소수들이다.

덕분에 이런 아주 큰 소수를 찾고 그 수가 소수인지 아닌지를 정하는 소수 판정법과, 역시 큰 수를 소인수분해하는 알고리즘이 중요한 이슈로 떠올랐다.

이렇게 큰 RSA 소수들의 제곱근을 일일이 찾아(밑 문단 참고) 그보다 작은 모든 소수들로 나누는 것이 여간 어려운 짓이 아니다. RSA 소수들 중 가장 큰 소수는 무려 600자리가 넘는다. 이것의 제곱근을 구하는 것은 [math(\pi)]을 구하거나[20][자연로그의 밑|[math(e)]]]을 소수 100번째 자리까지 외우는 것보다 어렵다.[21]


6. 소수 판정법 및 소인수분해[편집]


어떤 수가 소수임을 판정하기는 어렵다. 가장 간단하게 생각할 수 있는 방법은 2부터 [math(\sqrt n)]까지의 소수로 모두 나누어 보는 것이다.[22] 하지만 n이 50여 자리만 되어도 나눗셈을 몇 번 해야 되는지는 상상만 해도 끔찍하다.

1부터 n까지 모든 소수를 찾는 방법으로 고대 그리스의 수학자 에라토스테네스가 만들어 낸 방법이 있는데, 이는 하나의 수가 소수인지 아닌지를 판정하는 것보다는, 일정 범위 내의 소수를 모두 찾아내는 데 이용하는 경우가 많다. 이 방법은 마치 체로 치듯이 수를 걸러낸다고 하여 '에라토스테네스의 체'라고 부른다. 과정은 아래와 같다.
  1. 찾아내고 싶은 범위만큼 자연수를 죽 늘어놓는다.
  2. 1은 수학적으로 소수도, 합성수도 아닌 유일한 자연수이므로 먼저 1을 지운다.
  3. 먼저 2를 소수로 표시하고 2를 제외한 2의 배수(4, 6, 8, ...)를 모두[23] 소거한다.
  4. 그 다음 3을 소수로 표시하고 남아있는 수 중 3을 제외한 3의 배수(9, 15, 21, ...)도 모두[24] 소거한다.
  5. 그 다음 5를 소수로 표시하고 남아있는 수 중 5를 제외한 5의 배수(25, 35, 55, ...)도 모두[25] 소거한다.
  6. 그 다음 7을 소수로 표시하고 남아있는 수 중 7을 제외한 7의 배수(49, 77, 91, ...)도 모두[26] 소거한다.
  7. 남아있는 가장 작은 수(소수)에 대해 이 과정을 [math(\sqrt n)] 보다 작거나 같은 소수까지 계속 반복한다.
이렇게 하다 보면 [math(n)]보다 작은 소수만 남는다. 아래 그림은 에라토스테네스의 체로 1에서 100까지의 수 중 소수를 찾아낸 예이다.
[math(\begin{array}{|c|c|c|c|c|c|c|c|c|c|}\hline
\cancel1 & \bf\color{red}2 & \bf\color{blue}3 & \cancel\color{red}4 & \bf\color{green}5 & \cancel\color{red}6 & \bf\color{magenta}7 & \cancel\color{red}8 & \cancel\color{blue}9 & \cancel{\color{red}10} \\
\hline
\bf11 & \cancel\color{red}12 & \bf13 & \cancel\color{red}14 & \cancel\color{blue}15 & \cancel\color{red}16 & \bf17 & \cancel\color{red}18 & \bf19 & \cancel{\color{red}20} \\
\hline
\cancel\color{blue}21 & \cancel\color{red}22 & \bf23 & \cancel\color{red}24 & \cancel\color{green}25 & \cancel\color{red}26 & \cancel\color{blue}27 & \cancel\color{red}28 & \bf29 & \cancel{\color{red}30} \\
\hline
\bf31 & \cancel\color{red}32 & \cancel\color{blue}33 & \cancel\color{red}34 & \cancel\color{green}35 & \cancel\color{red}36 & \bf37 & \cancel\color{red}38 & \cancel\color{blue}39 & \cancel{\color{red}40} \\
\hline
\bf41 & \cancel\color{red}42 & \bf43 & \cancel\color{red}44 & \cancel\color{blue}45 & \cancel\color{red}46 & \bf47 & \cancel\color{red}48 & \cancel\color{magenta}49 & \cancel{\color{red}50} \\
\hline
\cancel\color{blue}51 & \cancel\color{red}52 & \bf53 & \cancel\color{red}54 & \cancel\color{green}55 & \cancel\color{red}56 & \cancel\color{blue}57 & \cancel\color{red}58 & \bf59 & \cancel{\color{red}60} \\
\hline
\bf61 & \cancel\color{red}62 & \cancel\color{blue}63 & \cancel\color{red}64 & \cancel\color{green}65 & \cancel\color{red}66 & \bf67 & \cancel\color{red}68 & \cancel\color{blue}69 & \cancel{\color{red}70} \\
\hline
\bf71 & \cancel\color{red}72 & \bf73 & \cancel\color{red}74 & \cancel\color{blue}75 & \cancel\color{red}76 & \cancel\color{magenta}77 & \cancel\color{red}78 & \bf79 & \cancel{\color{red}80} \\
\hline
\cancel\color{blue}81 & \cancel\color{red}82 & \bf83 & \cancel\color{red}84 & \cancel\color{green}85 & \cancel\color{red}86 & \cancel\color{blue}87 & \cancel\color{red}88 & \bf89 & \cancel{\color{red}90} \\
\hline
\cancel\color{magenta}91 & \cancel\color{red}92 & \cancel\color{blue}93 & \cancel\color{red}94 & \cancel\color{green}95 & \cancel\color{red}96 & \bf97 & \cancel\color{red}98 & \cancel\color{blue}99 & \cancel{\color{red}100} \\
\hline
\end{array})]
위 표에서 빗금이 없는 수는 소수를 의미한다. 100이하의 소수는 모두 25개이며, 색깔을 입힌 것은 진행 과정을 알 수 있게 하기 위한 것이다.
물론 모든 소수를 찾는다면 사실상 이 방법 뿐이지만, 하나의 소수만을 찾는다면 이건 위에서 말한 [math(\sqrt n)] 나눗셈보다도 훨씬 느리니 당연히 꽝이다.

이산수학과 알고리즘이 발전하면서 소수 판정법은 비약적으로 발전하였다. 1976년 발명된 밀러-라빈 판정법은 [math(\mathcal{O}(\log^3{n}))][27] 내에 소수를 판별할 수 있지만, 무작위 방법을 쓴다. 밀러-라빈 판정법의 원리는 간단히 말하자면 페르마의 소정리를 많은 경우에 만족시키는지 아닌지를 보는 것이다. 페르마의 소정리는 n이 소수일 때 만족하는 식을 주므로, 이 판정을 통과하지 못했다면 바로 n이 합성수임을 알 수 있다. 하지만 어떤 합성수 n이 여러 번의 판정을 우연히 통과할 확률은 시행횟수 k에 따라서 1/4k 이하로 현격하게 줄어드니(실제로는 이보다 더욱 작다), 이 확률을 무시한다면 실용적으로는 "k번 판정을 통과했으니 소수일 것이다"라고 할 수 있다. 물론 이 어떤 확률급의 확률에 재수없게 걸려 합성수를 소수라고 판별할 가능성도 있는데, 이 경우에는 별 도리가 없고 소수가 아니라고 예외적으로 하드코딩해야 한다.

2002년에 인도의 세 학생 Manindra Agrawal, Neeraj Kayal, Nitin Saxena이 결정론적 방법을 쓰는 AKS 알고리즘을 개발함으로써,결정론적인 소수판정이 이론적으로 [math(\mathcal{O}(\log^{12+o(1)}{n}))] 안에 풀릴 수 있음을, 즉 P-문제임을 보였다. P-NP 문제 참고. 2005년에는 [math(\mathcal{O}(\log^{6+o(1)}{n}))]인 결정론적 알고리즘이 나왔으나 실용적으로는 훨씬 빠른 밀러-라빈 등을 선호한다.
AKS 이 세명은 자신중 한명인 Manindra Agrawal 제기한 추측이 참이라면 밀러-라빈과 맞먹는 [math(\mathcal{O}(\log^{3+o(1)}{n}))]인 결정론적 알고리즘이 가능함을 보였다. 정수론 관련 추측답게 [math(10^{12})]까지 반례는 없으나 증명도 안되었다.

한편 소인수분해의 문제는 소수 판정과는 다르게 매우 어렵다. 확률적 해법으로 양보하더라도 [math(\log{n})]의 다항시간 등으로 나온다는 것은 아직 상상도 할 수 없다. 고전 컴퓨터가 아닌 양자컴퓨터의 경우는 이미 [math(\log^3{n})]인 쇼어알고리즘이 나와있으나 자리수가 늘어날수록 양자오류를 보정하는 작업이 만만치 않아 2001년 15를 소인수분해한 뒤 무려 11년이나 지나 21을 소인수분해 가능했다. 그리곤 감감무소식. 이 문제가 어려운게 어찌 보면 다행인데, 이 문제가 쉽다면 소수 기반 암호 체계의 대부분이 모두 무용지물이라서다.

자연수 n을 대입했을 때 n번째 소수가 튀어나오는 공식이 있기는 한데.. 윌런스의 공식 참조. 바닥함수와 간단한 곱셈을 이용한 공식도 있긴 한데, 카오스라 초항이 조금만 틀어져도 영 도움이 안된다. 사실 소수를 사용하는 법 말곤 초항을 계산할 방법조차 알려진 게 없으니 무쓸모.

참고로 소수 계량 함수 [math(\pi(x))]는 x보다 작거나 같은 소수가 몇 개인지에 대한 함수이다. 이 소수 계량 함수를 정확하게 만들어 내는 것은 불가능하지만, 그것이 대략 어떤 함수에 근사되는가를 연구하는 문제가 바로 소수 정리이다.[28] 그런데, 이걸 깊게 파면 튀어나오는 게 이 바닥의 최종 보스이다.


7. 여담[편집]


  • 여기 나와있는 예시보다 더 큰 수가 소수인지 판별하고 싶다면 아래 사이트를 이용하면 된다.
빠르게 계산 가능하지만, JavaScript의 한계로 인하여 9,007,199,254,740,991(16자리)[29]보다 큰 수는 처리하지 못한다.
울프럼알파에서 'factorize (원하는 수)'를 넣으면 소인수분해를 해준다. 또는 'is (원하는 수) prime?'으로 검색하면 소수 여부를 바로 알려주고 그 밑에 (합성수일 경우) 소인수분해, 그 수와 가장 가까운 소수 등을 알려준다. 엔진의 특성상 입력할 수 있는 수의 제한은 사실상 없다. 단, 어느 정도 이상 큰 숫자를 쓰려면 프로 회원에 가입해야 된다.
정수 N을 집어 넣으면 그 수의 약수, 소수인 약수, 약수의 합 그 수가 소수인가 그 수 바로 이전의 소수, 바로 다음 소수, 그 숫자 번째 소수 등 여러 가지를 보여준다. 소수인지만 확인하고 싶다면 7번째 줄의 '소수인가?'를 보거나 소수 판별만 하는 링크로 들어가면 된다. 최대 128자리 숫자까지 지원하며, 연산자도 사용할 수 있다.

  • 1박 2일 시즌 3에서 이걸 이용한 소수 369 게임을 한 적이 있었다. 당연히 출연진들은 하나하나 다 나가떨어졌다.

  • 일본에서 '모든 소수의 곱은 홀수인가 짝수인가?'가 논란이 된 적 있다.[30] 얼핏 보면 짝수인 2가 들어있어서 짝수일 것 같지만... 모든 소수를 곱한 것은 수가 아닌 발산하는 극한으로 홀수, 짝수 여부를 확인할 수 없다. 참고로 재규격화를 이용해 구한 모든 소수의 곱은 4π2라고 한다.(???)(PDF) [31]이건 비슷한 예를 들자면 무한등비급수 [math(1+x+x^2+x^3+\cdots = \displaystyle \frac{1}{1-x})]는 원래는 [math(-1끔찍한 일이 일어난다. 라마누잔합 참조.

  • 증명되지는 않았으나, 소수이면서 불가촉 수에 해당하는 숫자는 2와 5 뿐이다. 그 이유는 현재 알려진 52 이상의 모든 불가촉 수가 짝수이기 때문이다. 공교롭게도 이 두 수를 곱하면 10이 된다. 또한 2와 5는 일의 자리 숫자가 1, 3, 7, 9로 끝나지 않는 둘 뿐인 소수이기도 하다.

  • 죠죠의 기묘한 모험의 등장인물인 엔리코 푸치는 긴장했을 때 소수를 세는 버릇을 가지고 있다. 작중 설정에 따르면 소수는 1과 자기자신으로 밖에는 나누어지지 않는 고독한 수이기 때문에 그에게 용기를 가져다 준다고 한다. 서브컬쳐에서 소수를 세는 모습이 나오는 건 십중팔구는 이쪽의 오마주.


  • 역사상 최고의 수학자 중 하나로 꼽히는 알렉산더 그로텐디크는 강연에서 소수의 예를 드는 중 하필 3*19=57을 제시한 흑역사가 있다. 그 덕에 수학계에서는 개드립으로 57을 그로텐디크 소수라 칭하곤 한다.



[1] 자신과 더하면 0이 되는 수.[2] 꼭 자연수여야 한다. 왜냐하면 소수까지 취급해버리면 사실상 모든 수가 합성수가 되기 때문. 이는 나머지가 있는 나눗셈을 생각해보자. 자연수만 취급했을 때 나머지가 있으면 그 수는 나누어떨어지지 않는 셈이다.[3] 단, 1은 제외된다. 왜냐하면 소인수분해를 할 때 1도 소수면 무한히 많은 해결 방식이 있기 때문이다. 예를 들어 57을 소인수분해 할때 19×3, 19×3×1, 19×3×1²,···으로, 굳이 두자릿수일 필요도 없이 가장 작은 합성수인 4만 해도 이미 2×2, 2×2×1, 2×2×1²,···으로 소인수분해의 답이 무한하게 많아진다. 그래서 1은 소수도 합성수도 아닌 수로 지정했다. 참고로 1은 몇 번을 곱하든지에 상관없이 1이 되며, 양의 약수가 1개인 유일한 자연수이다.[4] 이는 환에서 소 아이디얼을 배우면 어떤 느낌인지 알 것이다.[5] 이는 소 아이디얼 역시 진 아이디얼(환 자기자신 제외)에서 다루는 것과 비슷하다.[6] 곱셈의 역수를 가진 원소[7] 단, 2가 들어 있다면 매우 가끔 아래의 첫 번째 등식이 성립한다. 예를 들어, [math(2+3=5 \in \mathbb{P})]이다. 물론, 2가 들어 있더라도 항상은 아니다. [math(2+7=9 \notin \mathbb{P})]. 이 등식을 성립하게 만드는 소수들이 바로 그 유명한 쌍둥이 소수.[8] 이것을 증명하는 과정은 자연수의 무한성 증명보다는 약간 어렵지만 그래도 무려 소수의 무한성 증명보다도 훨씬 쉽다. 임의의 자연수 n에 대해서 (n+1)!+2, (n+1)!+3, (n+1)!+4, ..., (n+1)!+(n+1)은 모두 소수가 아니므로 소수가 없는 구간이 최소 n이 되도록 하는 소수 사막을 찾을 수 있다. 소수가 무한히 있는 만큼 무한히 길거나 유한하지만 모든 소수 사막 중에서 가장 긴 소수 사막은 없다.[9] 게다가 원주율처럼 그 어떤 규칙도 발견되지 않았다. 그리고 짝수라도 수가 크다고 해서 무조건 약수가 많은 게 아니듯 아주 큰 수에서도 연속으로 2번 이상의 소수가 발견될 수도 있다. 그리고 한 가지 더 보태자면, P(n)의 값은 1부터 n까지의 수들 가운데에 해당되는 소수의 개수라고 할 때, 함수의 결과값 상승률이 거의 0에 수렴하므로 n의 값이 많이 커져야 할 필요가 있다.[10] <제타 함수의 비밀>(구로카와 노부시게 지음)이라는 책에 이 증명이 나와 있다.[11] 현재 밝혀진 최댓값은 [math(\sqrt{11}-\sqrt{7})]으로 약 0.67087이다.[12] 물론 여기서도 리만 가설처럼 비전공자는 이해조차 어려운 문제도 있다.[13] 만약 학생이 “왜 약수에서는 수의 음양을 따지지 않느냐”고 질문할 경우, 음수는 , 양수는 돈에 비유해 설명하면 쉽게 이해한다. 예를 들어 -3을 3으로 나누는 것은 빚 3억원을 세 명이 나눠 부담하는 것에 비유할 수 있고, 3을 3으로 나누는 것은 돈 3억원을 셋이 나눠 갖는 것에 비유할 수 있다. 두 경우 모두에서 한 사람 앞에 돌아간 액수는 1억으로 똑같지만, 그것이 빚이냐(-1억원) 돈이냐(1억원)의 차이만 있을 뿐이다. 즉 수가 음수간 양수건 나눠지는(약분되는) 방식은 동일하며 그 몫의 음양이 다를 뿐이다.[14] 물론 진법이 작아질수록 들어가는 개수가 많아지기는 하다. 이걸 더 큰 진법으로 바꿔서(예시로 10진법 기준 48인 수를 2진법 기준 110000이라고 해서 이걸 10진수 기준 10만보다 큰 수로 취급하는 등) 취급하는 행동은 소수점 뒤의 숫자가 많은 수에서 소수점을 없애는 행동과 같을 정도로 크기가 커진다. 0진법으로 바꾸는 행위는 무한소수인 수에서 소수점을 없애는 것과 같아서 아예 무한대가 된다.[15] 찻간, 횟수, 곳간, 툇간, 숫자, 셋방 6개는 예외.[16] 영어로 소수를 일컫는 말인 prime number에서 prime이 으뜸이라는 의미가 있기 때문에 솟아오른 수라고 번역했다는 주장이다. 허나 그럴 경우 솟수가 아니라 솟을수, 솟은수 등이 되어야 할 것이다.[17] 數字 = 숫자, 回數 = 횟수, 貰房 = 셋방, 退間 = 툇간, 庫間 = 곳간, 車間 = 찻간.[18] 즉 솟수와 소수의 구별이 얼마나 중요한지 모른다는 것.[19] 이쪽 언어에서 종종 혼동되는 것은 ‘정수’다. 소수점 이하가 없는 수를 나타내는 整数와 양수를 나타내는 正数가 せいすう로 발음이 같기 때문이다. 중국어에서도 각각 整数(zhěngshù), 正数(zhèngshù)로 성조만 다르다.[20] 애초에 무리수의 더 정확한 근사치를 구하는 것이랑 유리수를 구하는 것은 차원이 다른 문제다.[21] 일단 구하고 보면 기본 300~350자(정수 부분만 취급할 때)는 넘는다고 보면 된다. 일단 확실한 것은 소수는 제곱수가 아니라는 것이므로 그것의 제곱근은 항상 무리수이다.(음수 소수들은 취급하지 말자. 그러면 허수가 소수가 된다.)[22] n이 합성수라면 [math(\sqrt n)] 이하의 소인수가 있다고 쉽게 알 수 있다.[23] 2가 아닌 2의 배수들은 무조건 2라는 약수를 가지기 때문에 소수가 될 수 없다.[24] 3이 아닌 3의 배수들은 무조건 3이라는 약수를 가지기 때문에 소수가 될 수 없다.[25] 5가 아닌 5의 배수들은 무조건 5라는 약수를 가지기 때문에 소수가 될 수 없다.[26] 7이 아닌 7의 배수들은 무조건 7이라는 약수를 가지기 때문에 소수가 될 수 없다.[27] 예를 들어보자. 만약 n이 1000이라면, 8k(k는 비례상수)의 시간 내에 소수를 판별해 낼 수 있다는 것이다. 자세한 내용은 Big-O를 참조.[28] 여기서 빠질 수 없는 관계의 함수가 다름아닌 로그함수(정확히는 그 역수의 원시함수인 [math(\mathrm{li}(x))])이다.[29] 정확히 2^53-1이다.53비트 이내에서 수를 처리하는 것 같다.[30] 마법사와 검은 고양이 위즈라는 일본 퀴즈 RPG에서 출제된 적이 있었다. 보기로 1. 홀수 / 2. 짝수 / 3. 둘 다 맞음 / 4. 둘 다 아님이 주어졌는데, 정답은 후술하지만 4. 여기에 왜 답이 2번이 아니냐면서 항의하는 유저들로 인해 잠시 화제가 되었다.[31] 당연히도 이 파이는 원주율이 아니라 소수계량함수이다. 위 글의 수정자도 이 사실을 모르고 물음표를 단 듯하다.

파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는
문서의 r148 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}}에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r148 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)
문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)




파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-04 04:00:32에 나무위키 소수(수론) 문서에서 가져왔습니다.

관련 문서