JSFiddle - React, Tailwind, and code Playground

HTML

<input id="inp" type="text" /><input id="mul" type="button" value="Get Gaps" onclick="clickmul()" /><input id="add" type="button"  value="Remove additions" onclick='clickadd()' />
<table width="100%" border="1" id="tab">
</table>
<script>
var Storedadds=[];
var s=0,g=0;
Array.prototype.diff = function(a) {
        return this.filter(function(i) {return a.map(function(e) { return JSON.stringify(e); }).indexOf(JSON.stringify(i)) < 0;});
    };
getpivot = function(additions,addeqs) {
        pivot=[];
		for (var i=0;i<additions.length;i++) pivot.push([additions[i],addeqs[i]]);
		pivot.sort(function(a,b){ return a[0]-b[0]});
        return pivot;
    };
Array.prototype.sortt = function(additions,addeqs) {
        pivot=this;
		for (var i=0;i<this.length;i++) {additions[i]=pivot[i][0];addeqs[i]=pivot[i][1];}
		//if(pivot[i]!=i) while(pivot[i]!=i){swap(pivot[i],i,additions);swap(pivot[i],i,addeqs);swap(pivot[i],i,pivot);}
    };	
function getdiff(multiples,additions){
var altmult=[];
var eqmult=[];
var androgynes=[];
for(var i=1,j=0;j<multiples.length;i++){
if (multiples[j]>i){
altmult.push(i);
eqmult.push(i);
if (additions.indexOf(i)!=-1) androgynes.push(i);
}
else j++;
}

return [altmult,eqmult,androgynes]
}
function colored_conf(n,s) {
  var i;
  var j;
  var additions = [];
  var multiples = [];
  var androgynes= [];
  var multeqs= [];
  var addeqs= [];
  for (i = 0; i < n.length; i++) {
    for (j = 0; j <= i; j++) {
      //alert(n.length);
      if (additions.indexOf(n[i] + n[j]) == -1){
        additions.push(n[i] + n[j]);
		addeqs.push(String(n[i] + n[j]) + " = " + String(n[i]) + " + " + String(n[j]));}
    }
  }
  for (i = 0; i < n.length; i++) {
    for (j = 0; j <= i; j++) {
      if (multiples.indexOf(n[i] * n[j]) == -1){
	  if (additions.indexOf(n[i] * n[j]) != -1)
	    if(!s)androgynes.push(n[i] * n[j]);
	    multiples.push(n[i] * n[j]);
		multeqs.push(String(n[i] * n[j]) + " = " + String(n[i]) + " * " + String(n[j]));}
    }
  }
 ...