Jacobi symbol: Difference between revisions

Line 818:
def jacobi(a; n):
{a: (a % n), n: n, result: 1}
| until( .a == 0;
until( .a % 2 != 0;
.a /= 2
| if (.n % 8) | IN(3, 5) then .result *= -1 else . end )
| . + | {a: .n, n: .a, result} # swap .a and .n
| (.n % 4) as $nmod4
| if (.a % 4 == .n % 4 and .n % 4 == 3) then .result *= -1 else . end
| if (.a % 4) == $nmod4 and $nmod4 == 3 then .aresult %*= -1 else .n end
| .a = .a % .n )
)
| if .n == 1 then .result else 0 end ;
;
" Table of jacobi(a; n)",
Line 856 ⟶ 855:
29 1 -1 -1 1 1 1 1 -1 1 -1 -1 -1
31 1 1 -1 1 1 -1 1 1 1 1 -1 -1</pre>
 
=={{header|Julia}}==
{{trans|Python}}
2,471

edits