도구스학업·수학

이차잉여·르장드르 기호 계산기

a가 법 p에서 제곱수인지 판정하고 르장드르·야코비 기호와 실제 제곱근까지 구합니다. 오일러 판정법과 이차 상호법칙 두 경로를 나란히 계산해 답이 같은지 보여주고, 야코비 기호가 1이어도 제곱수가 아닌 반례도 함께 확인합니다.

a가 법 n에서 제곱수인지 봅니다. n은 홀수여야 하고 10¹⁵까지 다룹니다.

2는 법 7에서

제곱수입니다

법 7은 소수이므로 기호가 +1이면 제곱수, −1이면 아닙니다. 1부터 6까지 가운데 정확히 절반이 제곱수입니다.

7 — 소수
a를 법으로 줄이면2
서로소인지서로소입니다
오일러 판정법 a^((p−1)/2)+1 (제곱수)
르장드르 기호 (상호법칙)+1
두 방법이 같은지일치합니다
직접 제곱해 확인한 결과제곱수 맞습니다
이 법의 제곱수 개수3개
제곱근4, 3
구한 방법p≡3 (mod 4) 지름길
원리가 다른 두 방법이 같은 답을 냅니다. 하나는 a^((p−1)/2)를 실제로 계산하는 오일러 판정법이고, 하나는 이차 상호법칙으로 위아래를 뒤집어 가며 부호만 추적하는 방법입니다. 뒤쪽은 거듭제곱이 없어 훨씬 빠르고, 큰 수에서 실제로 쓰는 것도 그쪽입니다.

7의 제곱수 전부

1, [2], 4

1부터 6까지를 모두 제곱해 나온 값들입니다. 대괄호가 지금 넣은 a입니다. 소수 법이라 개수가 정확히 절반입니다 — 1²과 (p−1)², 2²과 (p−2)²처럼 둘씩 짝지어 같은 값이 나오기 때문입니다.

제곱근이 있으면 언제나 두 개입니다. 두 근을 더하면 법이 됩니다 — x가 근이면 n − x도 근이기 때문입니다. 법이 소수이고 4로 나눈 나머지가 3이면 a^((p+1)/4)가 곧 근이라 한 줄로 끝나지만, 나머지가 1이면 그런 지름길이 없어 톤엘리–섕크스를 써야 합니다. 위 예제에서 두 경우를 모두 볼 수 있습니다.
암호학과 정수론 곳곳에 쓰입니다. 타원곡선 위의 점을 찾을 때, 라빈 암호와 이차 체 소인수분해에서, 솔로베이–스트라센 소수 판정법에서 야코비 기호가 핵심 도구입니다. 소인수분해 없이도 계산된다는 점이 그 쓸모의 뿌리입니다.

계산 방법

  1. 1수 a와 법 n을 넣습니다. 법은 홀수여야 합니다.
  2. 2a가 그 법에서 제곱수인지 판정 결과를 봅니다.
  3. 3오일러 판정법과 야코비 기호가 같은 값을 내는지 확인합니다.
  4. 4제곱수라면 실제 제곱근 두 개를 확인합니다.
  5. 5법을 합성수로 바꿔 기호가 1인데 제곱수가 아닌 경우를 봅니다.

자주 묻는 질문

x² ≡ a (mod n)을 만족하는 x가 있으면 a를 법 n의 이차잉여라고 합니다. 쉽게 말해 그 법 안에서 「제곱수」인 값입니다. 홀수 소수 p에서는 1부터 p−1까지 가운데 정확히 절반이 이차잉여입니다.

1²과 (p−1)², 2²과 (p−2)²처럼 둘씩 짝지어 같은 값이 나오기 때문입니다. p−1개의 수를 제곱하면 서로 다른 값이 (p−1)/2가지만 나옵니다. 그래서 제곱근이 있으면 언제나 두 개이고, 그 둘을 더하면 p가 됩니다.

르장드르 기호는 아래가 홀수 소수일 때만 정의되고, 야코비 기호는 아래가 임의의 양의 홀수일 때로 넓힌 것입니다. 아래가 소수면 두 값이 같습니다. 야코비 기호는 소인수분해 없이 이차 상호법칙만으로 빠르게 계산되지만, 대신 「1이면 제곱수」라는 뜻을 잃습니다.

법이 소수일 때만 그렇습니다. 합성수에서는 −1이 두 번 곱해져 1이 되는 일이 있어서, 기호가 1인데도 제곱수가 아닐 수 있습니다. (2/15) = (2/3)(2/5) = (−1)(−1) = 1이지만 2는 법 15에서 어떤 수의 제곱도 아닙니다. 다만 기호가 −1이면 확실히 제곱수가 아닙니다.

a^((p−1)/2) mod p를 계산해 1이면 이차잉여, p−1이면 아니라고 판정하는 방법입니다. 뜻은 분명하지만 거듭제곱을 해야 합니다. 이차 상호법칙으로 계산하는 야코비 기호는 유클리드 호제법처럼 위아래를 뒤집어 가며 부호만 추적해 훨씬 빠릅니다.

p를 4로 나눈 나머지가 3이면 a^((p+1)/4)가 곧 제곱근이라 한 줄로 끝납니다. 나머지가 1이면 그런 지름길이 없어 톤엘리–섕크스 알고리즘을 씁니다. 이차잉여가 아닌 수를 하나 찾아, 그것의 거듭제곱으로 2의 거듭제곱 부분을 한 겹씩 벗겨 내는 방법입니다.

암호학과 정수론 곳곳에 쓰입니다. 타원곡선 위의 점을 찾을 때, 라빈 암호와 이차 체 소인수분해에서, 그리고 솔로베이–스트라센 소수 판정법에서 야코비 기호가 핵심 도구입니다.

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

알아두면 좋은 점

  • 정답지가 둘입니다. 첫째, 오일러 판정법과 야코비 기호는 원리가 전혀 다른데 소수 법에서는 반드시 같은 값을 내야 합니다 — 스무 개 소수의 모든 a, 합계 2,042가지에서 일치하는 것을 확인했습니다.
  • 둘째, 0부터 p−1까지 무식하게 제곱해 만든 실제 이차잉여 집합과 대조합니다. 르장드르 기호가 1인 것과 실제 제곱수가 정확히 같은지, 홀수 소수에서 그 개수가 정확히 (p−1)/2인지 검사합니다.
  • 구한 제곱근을 실제로 제곱해 원래 수가 나오는지, 두 근을 더하면 법이 되는지 1,000건 넘게 검사합니다. p ≡ 3 (mod 4)의 지름길과 톤엘리–섕크스를 각각 큰 소수(1,000,000,007과 1,000,000,009)에서도 확인했습니다.
  • 「야코비 기호가 1이어도 제곱수가 아닐 수 있다」는 반례를 여러 합성수에서 실제로 세어 확인합니다. 반대로 기호가 −1이면 확실히 제곱수가 아니라는 것도 함께 검사합니다.
  • 야코비 기호가 곱셈적((ab/n) = (a/n)(b/n))인 것도 검사합니다. 0 × (−1)이 자바스크립트에서 −0이 되어 비교가 어긋나는 자리를 따로 다뤘습니다.
  • 모든 계산은 BigInt로 합니다. 법을 넘지 않게 줄여 가며 곱해도 중간값이 법의 제곱까지 커지므로, 보통 수로 계산하면 법이 9,400만을 넘는 순간 곱셈이 조용히 틀립니다.
  • 소수 판정은 밑 12개를 쓰는 밀러–라빈이라 3.3×10²⁴ 미만에서 결정적입니다. 카마이클 수 561·1105·1729도 합성수로 걸러 내는 것을 확인했습니다.
  • 법은 10¹⁵까지, 무식하게 제곱해 보는 표는 300까지 다룹니다. 짝수 법은 이차 상호법칙이 다루지 않으므로 거절합니다.

함께 보면 좋은 도구

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