도구스학업·수학

펠 방정식 최소해 계산기

x² − D·y² = 1의 최소 양의 정수해를 √D의 연분수 전개로 찾습니다. D=60의 답이 (31, 4)인데 D=61에서 (1766319049, 226153980)으로 뛰는 것처럼, 작은 계수에 거대한 답이 나오는 모습을 근사분수 표로 따라갈 수 있습니다.

x² − 61·y² = 1

2부터 2,000까지. 완전제곱수면 해가 없습니다.

최소해 x

1766319049

x = 1766319049, y = 226153980입니다. √61의 연분수를 22번째 근사분수까지 폈을 때 나옵니다.

최소해

x

1766319049

y

226153980

x의 자릿수10자리
y의 자릿수9자리
검산 x² − D·y²1

61의 연분수

[7; 1, 4, 3, 1, 2, 2, 1, 3, 4, 1, 14] 되풀이

정수부 a₀7
주기 길이11
x² − D·y² = −1풀립니다 (주기가 홀수)

−1 쪽의 최소해

x = 29718

y = 3805

검산: -1

√D의 연분수는 반드시 주기적이고, 주기의 마지막 항은 언제나 2·a₀입니다. 마지막 항을 뺀 나머지는 앞뒤가 같은 회문입니다. 주기가 홀수일 때만 x² − D·y² = −1이 풀리며, 그때 주기 직전의 근사분수가 그 해입니다.

근사분수를 차례로

kah / kh² − D·k²
077 / 1-12
118 / 13
2439 / 5-4
33125 / 169
41164 / 21-5
52453 / 585
621070 / 137-9
711523 / 1954
835639 / 722-3
9424079 / 308312
10129718 / 3805-1
1114440131 / 5635312
121469849 / 60158-3
1342319527 / 2969854
1437428430 / 951113-9
1519747957 / 12480985
16226924344 / 3447309-5
17263596645 / 81427169
18190520989 / 11590025-4
193335159612 / 429127913
2041431159437 / 183241189-12
2111766319049 / 2261539801

마지막 열이 1이 되는 곳이 최소해입니다. 아무 분수나 훑는 것이 아니라 √D에 가장 잘 붙는 분수만 훑기 때문에 금방 닿습니다.

그다음 해들

xₙ + yₙ√D = (x₁ + y₁√D)ⁿ

2번째 해 · x 19자리

x = 6239765965720528801

y = 798920165762330040

3번째 해 · x 29자리

x = 22042834973108102061352541449

y = 2822295814832482312327709940

4번째 해 · x 38자리

x = 77869358613928486808166555366140995201

y = 9970149719303180503641083029374964080

해는 무한히 많고, 최소해 하나를 알면 나머지가 줄줄이 따라 나옵니다. 풀어 쓰면 xn+1 = x₁xₙ + D·y₁yₙ, yn+1 = x₁yₙ + y₁xₙ입니다.

D=60의 최소해는 (31, 4)인데 바로 다음 D=61에서 (1766319049, 226153980)으로 뜁니다. 계수는 한 칸 늘었는데 답은 여덟 자리가 늘었습니다. 「작은 계수인데 답이 거대한」 디오판토스 방정식의 성격이 이 한 쌍에 다 들어 있습니다. 두 값을 눌러 견줘 보십시오.
D가 완전제곱수가 아니면 최소해가 반드시 있다는 것은 1768년에 라그랑주가 증명했습니다. 「펠 방정식」이라는 이름은 오일러가 존 펠에게 잘못 돌린 데서 굳어진 것으로, 정작 펠은 이 문제를 다루지 않았습니다.

계산 방법

  1. 1D를 넣습니다. 2부터 2000까지 다룹니다.
  2. 2완전제곱수가 아니면 최소해 x와 y가 바로 나옵니다.
  3. 3「검산 x² − D·y²」가 1인지 확인합니다.
  4. 4근사분수 표에서 마지막 열이 1이 되는 줄을 찾습니다. 그 줄이 최소해입니다.
  5. 5D=60과 D=61을 번갈아 눌러 답의 크기가 얼마나 벌어지는지 견줍니다.

자주 묻는 질문

D가 완전제곱수가 아니면 반드시 양의 정수해가 있습니다. 1768년에 라그랑주가 증명했습니다. 반대로 D가 완전제곱수 k²이면 식이 (x − k·y)(x + k·y) = 1이 되어 두 인수가 모두 1이어야 하므로 y = 0인 자명한 해밖에 없습니다.

최소해의 크기가 D에 매끄럽게 따라 커지지 않기 때문입니다. D=60의 최소해는 (31, 4)로 두 자리인데 D=61에서 갑자기 (1766319049, 226153980)이 됩니다. √D의 연분수 주기가 길어지면 최소해가 급격히 커지는데, 그 주기 길이가 D에 따라 들쭉날쭉합니다. 페르마가 동시대 수학자들에게 D=61을 풀어 보라고 낸 것도 이 성질을 알고 있었기 때문입니다.

√D의 연분수 근사분수 hₖ/kₖ를 차례로 만들어 hₖ² − D·kₖ² = 1이 되는 곳을 찾습니다. √D의 연분수는 반드시 주기적이고, 근사분수는 √D에 가장 잘 붙는 분수들이라 아무 분수나 훑는 것보다 훨씬 빨리 닿습니다. 이 계산기의 근사분수 표에서 마지막 열이 1이 되는 줄이 그 자리입니다.

아닙니다. √D 연분수의 주기 길이가 홀수일 때만 풀립니다. D=2는 주기가 1이라 1² − 2·1² = −1이 되고, D=3은 주기가 2라 −1 쪽 해가 없습니다. 주기가 홀수면 주기 직전의 근사분수가 그 해이며, 이 계산기가 함께 보여 줍니다.

무한히 많습니다. 최소해를 (x₁, y₁)이라 하면 모든 해가 xₙ + yₙ√D = (x₁ + y₁√D)ⁿ 꼴로 나옵니다. 풀어 쓰면 x다음 = x₁x + D·y₁y, y다음 = x₁y + y₁x입니다. 그래서 최소해 하나만 구하면 나머지는 곱셈만으로 줄줄이 얻을 수 있습니다.

오일러가 이 문제를 존 펠의 것으로 잘못 돌린 데서 굳어진 이름입니다. 정작 펠은 이 방정식을 다루지 않았고, 유럽에서는 페르마와 브롱커가, 그보다 훨씬 앞서 인도의 브라마굽타와 바스카라 2세가 풀이법을 알고 있었습니다. 이름이 잘못 붙은 채 굳어진 대표적인 예입니다.

전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 검증은 2부터 2000까지 완전제곱이 아닌 모든 D에 대해 x² − D·y²를 실제로 계산해 1이 되는지 확인해 했습니다. 계산은 전부 BigInt로 합니다 — D=1021이면 x가 48자리라 배정밀도 부동소수점의 정확한 정수 범위를 훨씬 넘습니다.
  • 널리 실려 있는 최소해 표(OEIS A033313·A033317)의 값 가운데 D=13(649, 180), D=61(1766319049, 226153980), D=109(158070671986249, 15140424455100), D=421(34자리)을 테스트로 고정해 두었습니다.
  • √D 연분수의 알려진 성질 — 주기의 마지막 항이 2·a₀이고 그 앞부분이 회문이라는 것 — 을 D≤300에서 모두 확인했습니다. 주기 계산이 어긋나면 여기서 깨집니다.
  • x² − D·y² = −1이 주기가 홀수일 때만 풀린다는 것도 D≤500에서 모두 대조했습니다.
  • 주기 길이는 최소해를 찾는 과정과 따로 잽니다. 함께 재면 주기가 끝나기 전에 해가 나오는 D(D=3 등)에서 주기가 0으로 남습니다.
  • D는 2000까지 다룹니다. 근사분수 표는 24줄까지 보이며, 최소해가 그보다 뒤에서 나오면 몇 번째인지 따로 적습니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.