Jacobi symbol: Difference between revisions
Content deleted Content added
Added Sidef |
|||
Line 354:
(- (jacobi n a-mod-n))
(jacobi n a-mod-n)))))))</lang>
=={{header|Sidef}}==
Also built-in as '''kronecker(n,k)'''.
<lang ruby>func jacobi(n, k) {
assert(k > 0, "#{k} must be positive")
assert(k.is_odd, "#{k} must be odd")
var t = 1
while (n %= k) {
var v = n.valuation(2)
t *= (-1)**v if (k%8 ~~ [3,5])
n >>= v
(n,k) = (k,n)
t = -t if ([n%4, k%4] == [3,3])
}
k==1 ? t : 0
}
for n in (0..50), k in (0..50) {
assert_eq(jacobi(n, 2*k + 1), kronecker(n, 2*k + 1))
}</lang>
=={{header|zkl}}==
|