JSFiddle - React, Tailwind, and code Playground
by prozoroff
HTML
<span id = "123">123</span>
JavaScript
function calculateX(a, n) {
var max = 1;
var tmp;
var e = [];
var x = 0;
for (var i in n) {
max = n[i] * max;
}
for (i = 0; i < n.length; i++) {
tmp = gcd(n[i], max / n[i]);
e[i] = tmp[1] * max / n[i];
}
for (i = 0; i < n.length; i++) {
x += e[i] * a[i];
}
if (x >= max) {
x = x % max;
}
while (x < 0) {
x = x + max;
}
return x;
function gcd(a, b) {
if (a % b == 0) {
var temp = new Array(0, 1);
return temp;
} else {
var temp = gcd(b, a % b);
var temp2 = new Array(temp[1], temp[0] - temp[1] * (Math.floor(a / b)));
return temp2;
}
}
}
var a = [7, 12, 211, 383, 456, 764]; //widths
var n = [11, 13,223, 389, 457, 769]; //primes
var X = calculateX(a, n);
var result = "Answer: X = " + X + "\n";
for(var i = 0, l = a.length; i < l; i++){
var decoded = X%n[i];
result += "X%" + n[i] + " = " + decoded + " - " + (a[i] == decoded) + "\n";
}
document.getElementById("123").innerText = result;