Jacobi symbol: Difference between revisions

Content added Content deleted
(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}}==