고대 중국 수학책 《손자산경》에는 전체 수를 직접 모르면서 여러 번 나눈 나머지만으로 원래 수를 찾는 문제가 나옵니다. 어떤 물건을 3개씩 세면 2개, 5개씩 세면 3개, 7개씩 세면 2개가 남습니다. 이 수는 얼마일까요?
영국 세인트앤드루스대학교의 수학사 아카이브 MacTutor는 이 문제를 오늘날 ‘중국인의 나머지 정리’ 유형의 가장 이른 알려진 사례로 소개합니다. 다만 ‘중국인의 나머지 정리’라는 이름과 현대 정리의 일반 형식은 후대의 수학적 정리이며, 《손자산경》 자체는 구체적인 계산 규칙을 제시합니다.
먼저 답 23이 조건을 만족하는지 확인해 보자
23 ÷ 3 → 나머지 2
23 ÷ 5 → 나머지 3
23 ÷ 7 → 나머지 2
23은 세 조건을 모두 만족합니다. 하지만 문제의 핵심은 우연히 23을 찍는 것이 아니라, 나머지들을 조합해 체계적으로 답을 만드는 방법입니다.
《손자산경》의 70·21·15는 왜 특별할까?
MacTutor가 전하는 규칙은 다음과 같습니다. 3으로 나눈 나머지에 70을 곱하고, 5로 나눈 나머지에 21을, 7로 나눈 나머지에 15를 곱해 모두 더합니다.
3으로 나눈 나머지 2 → 2 × 70 = 140
5로 나눈 나머지 3 → 3 × 21 = 63
7로 나눈 나머지 2 → 2 × 15 = 30
합계 = 140 + 63 + 30
= 233
233은 아직 답 23보다 큽니다. 여기서 105를 두 번 빼면 23이 됩니다.
233 - 105 - 105 = 23
70은 왜 3의 나머지만 남기고 다른 조건에서는 사라질까?
이 방법의 독창적인 부분은 70·21·15가 각각 하나의 나머지만 살리고 나머지 조건에서는 0처럼 작동한다는 점입니다.
| 계수 | 3으로 나눈 나머지 | 5로 나눈 나머지 | 7로 나눈 나머지 |
|---|---|---|---|
| 70 | 1 | 0 | 0 |
| 21 | 0 | 1 | 0 |
| 15 | 0 | 0 | 1 |
그래서 2×70은 3으로 나눈 나머지 2만 만들고 5와 7 조건에는 영향을 주지 않습니다. 3×21은 5의 조건만, 2×15는 7의 조건만 담당합니다. 세 조각을 더하면 세 조건을 동시에 만족하는 수가 만들어집니다.
왜 105를 빼도 나머지 조건이 그대로일까?
105는 3×5×7입니다. 따라서 3, 5, 7 어느 수로 나눠도 나머지가 0입니다. 어떤 수에서 105를 더하거나 빼도 세 나눗셈의 나머지는 바뀌지 않습니다.
105 = 3 × 5 × 7
233과 23의 차이 = 210 = 2 × 105
따라서
233과 23은
3·5·7로 나눈 나머지가 모두 같다.

이 때문에 답은 하나의 숫자로 끝나지 않고 23, 128, 233, 338...처럼 105씩 반복됩니다. ‘가장 작은 양의 해’를 묻는다면 23을 선택합니다.
이 방법은 왜 단순한 나눗셈 문제가 아닐까?
보통 나눗셈은 전체 수를 알고 나머지를 구합니다. 이 문제는 반대로 여러 나머지를 알고 전체 수를 복원합니다. 서로 다른 측정 결과를 한 값으로 합치는 문제라는 점에서 계산의 방향이 완전히 반대입니다.
105가지 경우를 모두 확인하고, 다른 수로 바꿔 보니
3, 5, 7로 나눈 나머지의 조합은 3×5×7 = 105가지입니다. 이 105가지에 70·21·15 규칙을 모두 적용해 보니 0부터 104까지의 수가 하나씩, 겹치지 않고 정확히 한 번씩 나왔습니다. 어떤 나머지 조합을 주어도 이 범위 안의 답은 하나뿐이고, 규칙은 한 번도 틀리지 않습니다.
규칙 없이 0부터 차례로 대입해 찾는다면 평균 53번을 확인해야 합니다. 규칙을 쓰면 곱셈 세 번과 덧셈, 105 빼기로 끝납니다. 숫자가 커질수록 이 차이는 더 벌어집니다.
그렇다면 70·21·15는 어떻게 얻었을까요? 15·21·35는 각각 나머지 두 수의 곱입니다. 35를 3으로 나누면 나머지가 2라서, 나머지 1을 만들려면 2를 곱해 70으로 만들어야 합니다. 21을 5로 나누면 이미 나머지가 1, 15를 7로 나눠도 나머지 1이라 그대로 씁니다. 같은 방법을 다른 나누는 수에 적용해 계산하면 아래와 같습니다.
| 나누는 세 수 | 조합 수 | 각 나머지에 곱할 수 |
|---|---|---|
| 3, 5, 7 | 105 | 70, 21, 15 |
| 5, 7, 9 | 315 | 126, 225, 280 |
| 7, 11, 13 | 1,001 | 715, 364, 924 |
| 11, 13, 17 | 2,431 | 221, 1,496, 715 |
3·5·7에서는 곱할 수가 1이나 2로 바로 보이지만, 수가 커지면 715나 1,496처럼 쉽게 짐작하기 어려운 값이 필요합니다. 이 ‘나머지가 1이 되게 만드는 수’를 체계적으로 찾는 절차는 13세기 남송의 진구소(秦九韶)가 1247년 《수서구장》에서 대연구일술(大衍求一術)로 정리했습니다. 《손자산경》의 한 문제가 천 년 뒤 일반적인 계산법으로 이어진 셈입니다.
‘중국인의 나머지 정리’라는 이름을 그대로 고대에 붙여도 될까?
현대 수학은 서로 소인 여러 나눗수에 대해 이런 문제를 일반 정리로 표현합니다. 그러나 《손자산경》의 역사적 자료는 특정 문제와 계산 규칙의 형태로 남아 있습니다. 따라서 현대 정리의 일반식이 당시 책에 그대로 있었다고 표현하지 않고, 그 핵심 아이디어가 구체적 계산법으로 나타난다고 설명하는 것이 안전합니다.
나머지만으로 전체를 복원하는 핵심은 ‘조건을 서로 방해하지 않는 계수’다
70·21·15는 각각 한 조건에서만 1처럼 작동하고 다른 두 조건에서는 0처럼 작동합니다. 이 세 계수에 실제 나머지를 곱해 더한 뒤 공통 주기 105를 빼면 원하는 범위의 답을 얻을 수 있습니다.
이 계산은 단순한 요령이 아니라 서로 다른 나머지 정보를 충돌 없이 합치는 구조입니다. 고대 계산서에서 현대 정수론으로 이어지는 흥미로운 연결점도 바로 여기에 있습니다.
참고 자료
- MacTutor, Qin Jiushao: 《수서구장》과 대연구일술
- MacTutor, Ten classics: 손자산경의 3·5·7 나머지 문제와 70·21·15 계산 규칙
- MacTutor, Sun Zi: 문제의 역사적 위치와 답 23, 일반 나머지 규칙



