JSFiddle - React, Tailwind, and code Playground
JavaScript
function smallestCommons(arr) {
//var primes
var arr0=[]; // source array is formed directly from arguments range
var arrN=arr.sort(
function(a,b){
return a-b;
});
for (i=arrN[0];i<=arrN[arr.length-1];i++){
arr0.push(i);} // source array formed
var arrPrimes=[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97];
//var primes
//var remaining
arrRemnants=arr0.filter(x=>x!=1);
//var remaining
//var currentPrimeIndex
var pc=0;
//var currentPrimeIndex
//var lcm
var count=1;
//var lcm
//start of general while loop
label:
while(arrRemnants.length>0)
//done while start of length of remanining.count
{
//var currentPrime
var x=arrPrimes[pc];
//var currentPrime
//var boold divides=false
var dividable=false;
//var bools dividies
//start of nested loop of remnants length
for (i=0;i<arrRemnants.length;i++){
//done
//var value=remaning[i]
var y=arrRemnants[i];
//var value=remaning[i]
//int remainder=0
var remainder=0;
//int remainder=0
//var result=math
var result=y/x;
var remainder=result%1;
result-=remainder;
//var result=math
//condition remainder=0 inside loop
if (remainder===0)
{
//done
//channge boold divides and replane remaining[i]
dividable=true;
arrRemnants.splice(i, 1, result);
//trying without replace splice first
//end if and for
}
}
//done
//conditions inside while which operates with outcome of previous block
if (dividable===false){pc++;}
else if (dividable===true) {count*=x;};
//done
//filter out replies which encountered result==1
arrRemnants.filter(x=>x!=1);
//done
//finish while
}
console.log(count);
}
smallestCommons([1,5])