수학은 자연의 언어라고 불립니다.
과학자들은 인류가 언젠가 또다른 지적생명체인
외계인들과 만나게 되면 언어는 통하지 않더라도
수학의 기호로써 서로 소통을 할 수 있다고 말합니다.
왜냐하면 수학은 자연의 언어이기 때문에
중간 변환을 거치면 의미는 똑같이 전달될 것이라고 합니다.
예를 들어 자연수 1 + 1은 2가 되는 것은
자연의 법칙이므로 외계인들에게도
적용될 것이라 예상할 수 있습니다.
기호나 수학을 사용하는 매체는 차이가 있겠지만요.
외계인은 아니지만 지구에 있는 인류를 제외한
지적생명체 중에 고래가 있습니다.
지금은 바다에 소음이 많기 때문에
고래들의 소통범위가 줄어들었다고 합니다만
증기기관의 발명 이전에 고래들은
초음파를 사용해 지구 반대편까지
통신이 가능했다고 합니다.
인간은 공기를 사용한 음파로 의사소통을 할 수 있습니다.
또 종이에 문자를 기록함으로써
시간을 초월해서 의미를 전달할 수 있죠.
최근에는 컴퓨터에 전자를 사용해서
정보를 기록하고 빛의 속도로 전달할 수 있습니다.
인간이 만든 물건중에서 지구와 가장 멀리떨어진
성간탐사선 보이저 1호에는 지구의 언어를 기록한
골든디스크가 탑재되있습니다.
금으로 제작되어서 이론적 수명은 수백억년까지
보존이 가능하다고 합니다.
또 우주에 전파를 쏘아서 소수를 보낸다면
이를 받은 외계인들은 단번에
지구가 문명사회라는 것을
이해할 수 있다고 합니다.
(전파 통신이 가능한 사회라면
소수의 의미를 알 수 있다는 뜻)
보이저 1호를 발사한 것은 1977년 입니다만
아쉽게도 이 때는 소수를 넣어서 보낼 생각은
안했던 것 같습니다.
지구의 각종 언어로 인사말을 수록했다고 알려져있습니다.
먼 훗날 외계인들이 이를 보고
이해할 수 있을지 모르겠네요
서론이 길었지만 소수는 그냥
하나의 수학 법칙이 아니라
자연계의 핵심원리를 담고 있는 수 입니다.
소수(prime numberS)들은
흔히 수학의 원자(atoms)라고 부릅니다.
혹은 숫자들의 원자(atoms of Numbers)라고 말합니다.
더이상 나눌 수 없는 물질의 단위를
원자(atom)라고 표현한 것과 비슷합니다.
(물론 원자는 더 작게 분해가능하다)
수학은 추상적 아이디어지만
자연계에 수학의 원리가 내재되있습니다.
그러므로 외계인들의 세계에 조차
소수의 법칙이 적용될 것이라고
믿는 것은 무리가 아닐 것 입니다.
1. 자연수 (Natural Number) 이다.
2. 2개의 자연수에 의해서 나누어 떨어진다.
3. 2개의 자연수는 1과 그 자신이다.
(예를 들어 2는 1과 2로 3은 1과 3으로 나누어진다
3을 2로 나누면 나머지가 남기 때문에 소수가 아님)
3. 소수 이외 숫자들은 둘 이상의 소수를 곱한 자연수이다.
이를 합성수(composite number) 라고 한다.
모든 자연수들은 소수로 이루어져 있고
소수로 만들 수 있다는 말이 됩니다.
1은 자신 하나만으로 나누어집니다.
따라서 소수가 아닙니다.
2는 첫번째이자 마지막인 짝수입니다. (even)
짝수는 2로 나누어지는 수입니다.
2는 1과 2로 나누어지는데
2의 이후 나오는 수는 모두
2에 의해서 나누어지도록 되어있습니다.
(어떤 짝수라도 2에게 다 썰림)
그래서 2를 제외한 모든 자연수 짝수는
소수가 아닙니다.
3은 첫번째 홀수인 소수입니다
이 다음부터는 홀수 밖에 나오지 않습니다.
자연수의 첫번째 합성수입니다.
1, 2, 4 의 3개 숫자로 나눌 수 있습니다.
5로 나눌 수 있는 수는 일의 자리가 5나 0 입니다.
즉 5 이후 일의 자리에 5나 0이 나오면
소수가 아닙니다.
1,2,3,6의 4개 숫자로 나눌 수 있습니다.
최초의 합성수 4가 3개의 소수로 만들어지면
두번째인 합성수 6은 4개의 숫자로 만들어집니다.
7은 1과 7로 나누어지는 소수입니다.
10이 넘지 않는 숫자중에서 마지막 소수입니다.
7은 서양에서 Lucky seven 이라는
행운의 숫자로 불리고 있습니다.
카지노에서 777이 나오면
잭팟이 터진다고 하는데요.
성경에서 7은 성스러운 숫자로 등장하고
6은 악마의 숫자로 등장합니다.
요일 체계가 월요일부터 일요일인 것과도
연관이 있습니다.
(7일은 안식일 - 일요일)
음악의 음계도 '도레미파솔라시'의
7개 반복으로 만들어져있습니다.
그밖에 7이라는 숫자는 기도교 뿐 아니라
힌두교, 불교 등 종교의 역사에서도
자주 등장합니다.
복합수는 분리가능한 속성이지만
소수는 분해시킬 수 없는
특성을 갖고 있기 때문에
완전한 수라는 생각도 할 수 있습니다.
11은 10 이후 첫번째 소수입니다.
수의 체계는 이진법 8진법등 다양하게 있지만
유독 인간은 손가락 수를 맞춰서
10진법을 사용하기 때문에
약간의 의미를 부여할 수 있을 것 같습니다.
아래의 C++ 프로그램으로 소수(prime number)를 구할 수 있습니다.
for루프를 사용하여 100까지 소수를 구합니다.
물론 1000이건 1억이건 같은 알고리즘으로 구할 수 있습니다.
'에라토스테네스의 체' 라는 방법을 사용해
손으로 구할 수도 있겠지만
우리에겐 컴퓨터가 있기 때문에
알고리즘만 주면 됩니다.
알고리즘 자체는 심플합니다.
1과 자신만으로 나누어지는 경우
소수로 선택한다.
여기서는 break 문을 사용했는데
다양한 알고리즘으로 구할 수 있을 겁니다.
#include<iostream>
using std::cout;
using std::endl;
int main() {
int rangePrime = 100;
int i, j;
for (i = 0; i < rangePrime; i++)
{
if (i == 0 || i == 1) continue;
for (j = 2; j <= i; j++)
{
if (i % j == 0)
{
break;
}
}
if (i == j)
{
cout << i << " is Prime Number." << endl;
}
}
return 0;
}
2 is Prime Number.
3 is Prime Number.
5 is Prime Number.
7 is Prime Number.
11 is Prime Number.
13 is Prime Number.
17 is Prime Number.
19 is Prime Number.
23 is Prime Number.
29 is Prime Number.
31 is Prime Number.
37 is Prime Number.
41 is Prime Number.
43 is Prime Number.
47 is Prime Number.
53 is Prime Number.
59 is Prime Number.
61 is Prime Number.
67 is Prime Number.
71 is Prime Number.
73 is Prime Number.
79 is Prime Number.
83 is Prime Number.
89 is Prime Number.
97 is Prime Number.
1000까지 구해보면 997이 1000 이하의
마지막 소수임을 알 수 있습니다.
10000이하는 9973 입니다.
이렇게 상당히 큰 숫자도
그 수를 나눌 수 있는 수가
1과 그 자신 뿐이라니 놀랍습니다.
C++을 돌리면 더 큰 소수도 찾아낼 수 있습니다.
다만 CPU성능에 따라 시간이 걸릴 수도 있습니다.
소수를 구하는 것은 계속 연산을 해야하기 때문에
생각보다 CPU의 파워가 많이 필요합니다.
현재까지 인류가 발견한 가장 큰 소수는
메르센 소수법으로 찾아낸(2^n -1)
2의 82589933승-1 이라고 합니다.