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;