/** jacobi (a/b) **/
public long Jacobi(long a, long b) {
if (b <= 0 || b % 2 == 0)
return 0;
long j = 1L;
if (a < 0) {
a = -a;
if (b % 4 == 3)
j = -j;
}
while (a != 0) {
while (a % 2 == 0) {
a /= 2;
if (b % 8 == 3 || b % 8 == 5)
j = -j;
}
long temp = a;
a = b;
b = temp;
if (a % 4 == 3 && b % 4 == 3)
j = -j;
a %= b;
}
if (b == 1)
return j;
return 0;
}
雅克比算法 JAVA實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.