Skip to content

Instantly share code, notes, and snippets.

@elichai
Created June 18, 2019 22:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elichai/51398a32d736ffbc6fe710dc41378488 to your computer and use it in GitHub Desktop.
Save elichai/51398a32d736ffbc6fe710dc41378488 to your computer and use it in GitHub Desktop.
def jacobi_symbol(numerator, denominator):
numerator %= denominator
res = 1
while numerator != 0:
while numerator % 2 == 0:
numerator /= 2
tmp = numerator % 8
if tmp == 3 or tmp == 5:
res = -res
numerator, denominator = denominator, numerator
num_mod = numerator % 4
if (num_mod == 3) and (denominator % 4 == 3):
res = -res
numerator %= denominator
if denominator ==1:
return res
else:
return 0
p = 115792089237316195423570985008687907853269984665640564039457584007908834671663
my_a = 28597260016173315074988046521176122746119865902901063272803125467328307387891
secp_a = 70883851193742582145443836680896746453361737233356240411502978926510831707445
print(jacobi_symbol(my_a, p))
print(jacobi_symbol(secp_a, p))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment