파이썬과 함께 하는 다시 도전하는 수학이야기
저는 계량경제학이라는 박사학위에서 중에서도 난해한 종목을 공부하면서, 경제학자들이지만 천재들인 수학재능이 있는 박사들이 쓴 논문을 보면서, 한줄을 넘어가는데도 한 달이 걸리는 등 수학에 기초가 부족하다고 매번 반성을 하면서 공부를 계속하고 있어요. 그런데 제가 하고 있는 통계학에서도 그렇지만 수학은 모든 학문의 기초이면서 수학자들의 재미난 스토리도 많고, 아직도 풀지 못한 수학문제도 있다 하고, 그 세계는 넓고도 깊은 것 같아요. 그래서 저는 인공지능 시대에 수학을 포기한 사람(수포자)가 있어서는 않된다고 생각을 하면서, “파이썬과 같이 하는 다시 도전하는 수학 이야기들”도 40편 정도의 연재글을 만들고 싶어졌어요. 이미 벌린 일들이 많지만, 자유의 몸인 내년 2월까지는 완결을 할 예정입니다. 글의 범위도 따라서 초급부터, 중급까지만을 다룰 예정입니다. 가장 중요한 포인트는 파이썬 코드로 시현이 가능한 범위내이고, 파이썬으로 왜파이가 3.14..........인지도 끝까지 추정을 해서 여러분과 눈으로 확인하는 수학공부가 되도록 하고, 실생활에서 수학이 어떻게 사용되는지, 왜 경제학에서 미분과 적분, 확률이 필요한지에 대해서도 그 이유를 설명할 예정입니다. 미래에 상대(경제, 경영)나 IT(인공지능,. 양자컴퓨팅)를 전공하시려는 분들, 또는 두 범주를 융합해서 대학원에 진학ㅎ하려는 분들에게도 중요한 Insight가 되라라 생각합니다. 그리고 생애에 수학에 대한 미련이나 아쉬움은 털고 가자구요. 이 시리즈에는 CLAUDE, GEMINI, GROK, GPT5 등 수학천재들의 도움을 받아 작성될 예정입니다.
우리는 매일 숫자를 씁니다. 1, 2, 3, 4... 하지만 이 숫자들 사이에는 아주 특별하고 고독한 존재들이 숨어 있습니다. 바로 소수(Prime Number)입니다.
Prime은 가장 중요한, 가장 초석이 되는 숫자들입니다.
가령? 2, 3, 5, 7, 11, 13... 이 숫자들의 공통점은 무엇일까요? 바로 1과 자기 자신으로만 나누어지는 자연수라는 것입니다. 6은 2와 3으로 나뉘지만, 7은 1과 7로만 나눌 수 있죠.
이 소수들은 마치 물질을 이루는 '원자'와 같습니다. 모든 숫자(정확히는 1보다 큰 정수)는 이 소수들의 곱으로 표현할 수 있거든요. (예: 12 = 2 x 2 x 3)
하지만 이 소수들은 나타나는 규칙이 없어 수학자들을 오랫동안 괴롭혔습니다. 도대체 이들은 어떤 비밀을 가지고 있을까요? 그리고 현대 사회에서 이 '고독한 숫자'가 왜 그렇게 중요할까요? 오늘은 이 소수의 신비를 파이썬과 함께 파헤쳐 봅니다.
소수가 중요한 이유는 크게 두 가지입니다.
모든 수의 근원: 앞서 말했듯 모든 수는 소수의 곱(소인수분해)으로 유일하게 표현됩니다. 소수는 말 그대로 숫자의 '벽돌'입니다.
현대 암호학의 핵심: 여러분의 은행 계좌, 인터넷 쇼핑의 비밀번호는 소수를 기반으로 한 'RSA 암호' 체계로 보호됩니다. 아주 큰 두 소수를 곱하는 것은 쉽지만(컴퓨터도 1초 만에), 그 곱해진 큰 숫자를 다시 두 소수로 되돌리는 것(소인수분해)은 슈퍼컴퓨터로도 수백 년이 걸릴 만큼 어렵기 때문입니다.
그렇다면 이 소수들을 어떻게 찾아낼 수 있을까요?
가장 고전적이고 우아한 방법은 고대 그리스의 수학자 '에라토스테네스'가 고안한 '체(Sieve)'입니다. 밭에서 곡식을 거르듯 숫자를 걸러내어 소수만 남기는 방법이죠.
2부터 100까지 숫자를 쫙 펼칩니다.
가장 작은 소수인 2를 남기고, 2의 배수(4, 6, 8...)를 모두 지웁니다.
남아있는 숫자 중 가장 작은 수인 3을 남기고, 3의 배수(6, 9, 12...)를 모두 지웁니다.
남아있는 숫자 중 가장 작은 수인 5를 남기고, 5의 배수(10, 15, 20...)를 모두 지웁니다.
이 과정을 반복하면... 결국 소수만 남게 됩니다!
이 원리를 파이썬 코드로 구현하면 순식간에 1,000까지, 10,000까지의 소수도 찾아낼 수 있습니다.
코딩에 경험이 없으신 분은 파이썬이 어려우니, 말로만 듣던 '에라토스테네스의 체'를 제가 대신 파이썬으로 직접 만들어서 100까지의 소수를 찾아보겠습니다.
--- 100까지의 소수 리스트 --- [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] 총 25개의 소수를 찾았습니다.
1초만에 계산이 되었어요. 오늘 소수에 대한 기억을 되살리셨죠?
코드가 필하신분은 요청을 하시거나 chatGPT등에게 요청을 하셔도 되요.