Is this kind of solution ok? bruteforce coding? My browser wont let me calculate the smallestCommons([23, 18]) without saying is a possible infinite loot, but it works for the Run the tests action.

Your code so far

function smallestCommons(arr) {
/* sorting array from greatest to smallets */
let arrFull=[];
arr.sort((a,b)=> b-a);
/* adding the in between numbers*/
for (let i=arr[0];i>=arr[1];i--) {arrFull.push(i)};
/* variables set up*/
let x=1;
let result =[false];
/* checking if the result array has any false in it and reseting to empty */
while (!result.every(elem=> elem==true)) { result=[];
/* checking every number in the full array to see if pass the if condition, if it is not,adds 1 to the x and try again until the while condition becomes false */
for (let i=0;i<arrFull.length;i++)
{if (x % arrFull[i] ==0)
{result.push(true)}
else {x++;result.push(false)}}};
return x;
}
console.log(smallestCommons([5,1]))

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36.

The reason that you are failing with a â€śpossible infinite loopâ€ť error is because of how long your code takes to run. The freeCodeCamp process for running tests have a time limit to avoid crashing your browser (as do many other online coding environments). You definitely can refactor your code to be efficient enough not to cause any problems. Thereâ€™s nothing wrong with looking up the mathematical formulae instead of reinventing them. Youâ€™ll still have to implement them in code yourself.

This is a case where a little bit of research will go a long way. Lots of people have thought about this problem and itâ€™s great to leverage their math tricks. Your solution works but is inefficient.

If you look here:

The ingredients for a fast solution are:

LCM commutativity: lcm(a, b, c) = lcm(lcm(a, b))

LCM/GCD formula: lcm(a, b) = a*b/gcd(a, b)

Eculidâ€™s algorithm: fast recursive formula for finding GCDs