2, 3, 5, 7, 11, 13, …으로 이어지는 소수. 특별한 규칙이 없어 세 자릿수만 넘어도 이 수가 소수인지 아닌지 판별해 내기가 쉽지 않습니다. 이럴 때 필요한 것이 바로 컴퓨터죠! 소프트웨어 교육 플랫폼인 ‘엔트리’를 이용해 어떤 수가 소수인지 알아맞히는 프로그램을 만들어 봅시다.
잡힐 듯 안 잡히는 소수 찾기
“수학자들은 항상 소수에 매료되었습니다. 소수는 아무런 규칙 없이 무작위로 나오는 듯 보이면서도, 손만 뻗으면 움켜쥘 규칙이 있는 것처럼 보이기 때문입니다.”
- 미국의 수학자 언더우드 더들리-
소수란 2, 3, 5, 7, 11, 13, 17, 19, …로 이어지는 수로, 1과 자기 자신으로만 나눠떨어지는 1보다 큰 양의 정수입니다. 그 정의만 알고 있다면 누구나 1부터 50까지 수 중에서 쉽게 소수를 골라낼 수 있죠. 그런데 수가 조금만 커져도 이 수가 소수인지 판별해 내는 건 쉽지 않습니다. 그래서 많은 수학자들이 소수가 등장하는 규칙을 알아내기 위해 끊임없이 연구하고 있습니다.
소수 연구가 언제부터 시작됐는지는 확실히 알 수 없지만, 현재까지 가장 오래된 연구 결과는 유클리드 <원론>에 등장합니다. 고대 그리스의 수학자 유클리드는 <원론>에서 소수의 정의는 물론, 모든 수가 소수로 나눠떨어진다는 것과 소수가 무한히 많다는 사실도 소개했습니다.
소수를 찾는 방법으로는 ‘에라토스테네스의 체’가 있습니다. 고대 그리스의 수학자 에라토스테네스가 발견한 것으로, 자연수를 체에 걸러서 소수만 골라내는 방법입니다. 정의상 1은 소수에서 제외하기 때문에 2보다 큰 자연수를 쭉 늘어놓습니다.
2의 배수 체로 자연수를 걸러 2를 제외한 2의 배수를 소수 후보에서 제외시킵니다. 다음은 3의 배수, 그 다음은 5의 배수, 이런 식으로 수를 거르는 겁니다. 그러면 소수만 남게 되지요. 매우 단순하지만 확실하게 소수를 발견하는 유일한 방법입니다.
이번 기사에서는 엔트리로 소수를 판별하는 프로그램을 만들어 볼 예정입니다. 엔트리는 초등학생도 프로그램밍 언어를 쉽고 재미있게 배울 수 있도록 돕는 교육 플랫폼입니다. 어려운 소스 코드 대신 블록을 쌓기만 하면 원하는 프로그램을 만들 수 있습니다.
수학동아
댓글 없음:
댓글 쓰기