d라이브러리









[오일러 프로젝트] 200만 이하 소수의 합은 얼마일까? 블랙 위도우

코.알.못, 홍 기자의 코딩 도전기

 

 

‘어벤져스: 엔드게임’에서 생을 마감해 아쉬웠던 블랙 위도우가 영화 ‘블랙 위도우’로 돌아올 예정이죠. 그런데 표지에서 본 블랙 위도우와 다르게 제 모습은 어딘가 위축돼 보인다고요? 블랙 위도우는 어떤 전투에서도 이길 수 있을 것처럼 당당하지만 전… 그렇지 않다고요! 과연 제가 블랙 위도우처럼 소수라는 전쟁터에서 살아남을 수 있을까요?

 

드디어 등장했습니다. 수학계의 타노스 급 문제, 소수입니다. 소수는 1과 자기 자신만을 약수로 가지는 수를 말합니다. 기원전 3세기 고대 그리스의 수학자 에우클레이데스(유클리드)는 저서 ‘원론’에서 소수의 개수는 무한하며, 1을 제외한 모든 자연수는 소수이거나 소수의 곱으로 나타낼 수 있다는 사실을 소개했습니다. 이후 모든 수의 근원이 되는 소수의 정체를 밝히기 위해 노력했죠.

 

특히 많은 수학자가 소수를 찾는 것에 집중했습니다. 하지만 어떤 자연수가 소수인지 알아내는 건 쉬운 일이 아니었습니다. 같은 고민을 했던 고대 그리스의 수학자 에라토스테네스는 소수를 찾을 수 있는 ‘에라토스테네스의 체’를 생각해냈습니다. 수 전체에서 약수의 개수가 3개 이상인 합성수를 체로 거르듯 지워나가 소수만 남기는 방법입니다. 여기서는 자연수 2부터 10에서 소수만 얻는 과정을 살펴보겠습니다.

 

 

수학자들은 에라토스테네스의 체 외에도 다양한 방법을 이용해 소수를 찾고, 그 사이에서 규칙을 알아내기 위해 노력했습니다. 규칙을 알면 모든 소수를 구할 수 있는 공식을 만들 수도 있으니까요. 하지만 규칙조차 발견하지 못하자, 방향을 바꿔 소수의 성질을 나타내는 여러 추측을 제시했습니다. 난제 중의 난제로 꼽히는 ‘리만 가설’, ‘골드바흐의 추측’, ‘쌍둥이소수 추측’ 등이 그것이지요.

 

소수의 성질을 밝히기 위한 연구는 여전히 진행 중입니다. 이번 문제에서는 소수를 다루는 대장정의 시작인 에라토스테네스의 체를 코딩으로 구현할 거예요. 200만 이하의 소수를 찾아 그 합을 구해보겠습니다. 다음 달에도 소수와 관련된 문제가 또 나올 예정이니 뒤의 코딩 팁을 잘 기억해두세요

 

 

※편집자 주. 코딩의 ‘코’자도 모르는 코.알.못. 홍 기자가 수학 문제를 코딩으로 푸는 오일러 프로젝트 문제를 하나하나 해결해 나갈 예정입니다. 오일러 프로젝트는 수학과 프로그래밍 실력을 모두 키울 수 있도록 2001년에 만든 수학 문제 웹사이트입니다. 홍 기자와 함께한다면 수학과 파이썬 모두 정복할 수 있지 않을까요?

 

※도움 강중빈
※ 참고자료 박응용 ‘점프 투 파이썬’

2020년 04월 수학동아 정보

  • 홍아름 기자

🎓️ 진로 추천

  • 수학
  • 컴퓨터공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?