Data update
This commit is contained in:
parent
72eb4943cb
commit
4d5544505c
2347 changed files with 62432 additions and 16731 deletions
52
Task/Jacobi-symbol/JavaScript/jacobi-symbol.js
Normal file
52
Task/Jacobi-symbol/JavaScript/jacobi-symbol.js
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
function jacobi(n, k) {
|
||||
if (k <= 0 || k % 2 !== 1) {
|
||||
throw new Error("k must be positive and odd");
|
||||
}
|
||||
n %= k;
|
||||
let t = 1;
|
||||
while (n !== 0) {
|
||||
while (n % 2 === 0) {
|
||||
n /= 2;
|
||||
const r = k % 8;
|
||||
if (r === 3 || r === 5) {
|
||||
t = -t;
|
||||
}
|
||||
}
|
||||
[n, k] = [k, n]; // Swap n and k
|
||||
if (n % 4 === 3 && k % 4 === 3) {
|
||||
t = -t;
|
||||
}
|
||||
n %= k;
|
||||
}
|
||||
return k === 1 ? t : 0;
|
||||
}
|
||||
|
||||
function print_table(out, kmax, nmax) {
|
||||
let header = "n\\k|";
|
||||
for (let k = 0; k <= kmax; ++k) {
|
||||
header += " " + k.toString().padStart(2, ' ');
|
||||
}
|
||||
out.push(header);
|
||||
|
||||
let separator = "----";
|
||||
for (let k = 0; k <= kmax; ++k) {
|
||||
separator += "---";
|
||||
}
|
||||
out.push(separator);
|
||||
|
||||
for (let n = 1; n <= nmax; n += 2) {
|
||||
let row = n.toString().padStart(2, ' ') + " |";
|
||||
for (let k = 0; k <= kmax; ++k) {
|
||||
row += " " + jacobi(k, n).toString().padStart(2, ' ');
|
||||
}
|
||||
out.push(row);
|
||||
}
|
||||
}
|
||||
|
||||
function main() {
|
||||
const output = [];
|
||||
print_table(output, 20, 21);
|
||||
output.forEach(line => console.log(line));
|
||||
}
|
||||
|
||||
main();
|
||||
Loading…
Add table
Add a link
Reference in a new issue