hello there, the more i progress in the course , the more my solutions are varying drastically from the offered solutions when i check them against them after completing a challange , and i sometimes have trouble understanding the solutions offered on the forum …

example my code for this challane seems a bit overconvuluted compared to the solution oferred.

the challenge : https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/smallest-common-multiple

my solution:

```
function smallestCommons(arr) {
if (arr[0] > arr[1]) {
let a = arr[0];
arr[0] = arr[1];
arr[1] = a;
}
let darr = []; // series of numbers to check for lcm
let num; // instance of number from prime numbers array
let farr = [2];// prime numbers array to be converted to let parr later
let omgarr = []; // final array to multiply for lcm
let b = arr[0];// iterator to create darr[]
for (let i = 0; i < arr[1] - arr[0] + 1; i++) {
darr.push(b);
b++;
}
for (let i = 3; i <= arr[1]; i++) {
if (i % 2 !== 0) {
farr.push(i);
}
}
for (let i = 1; i < farr.length; i++) {
let pushable = true;
for (let j = 1; j < farr.length; j++) {
if (farr[i] !== farr[j]) {
if (farr[i] % farr[j] == 0) {
pushable = false;
}
}
}
if (!pushable) {
farr[i] = 0;
}
}
let parr = farr.filter((elem) => elem !== 0);
console.log(parr);
console.log(darr);
for (let i = 0; i < parr.length; i++) {
let num = parr[i];
for (let j = 0; j < 20; j++) {
let copy = darr.join("-");
console.log(copy);
for (let k = 0; k < darr.length; k++) {
if (darr[k] % num === 0) {
darr[k] = darr[k] / num;
}
}
if (copy !== darr.join("-")) {
omgarr.push(num);
console.log("pushed" + omgarr);
}
}
}
console.log(darr);
console.log(omgarr);
return omgarr.reduce((acc, elem) => elem * acc, 1);
}
smallestCommons([23, 18]);
```

should i be orried about the way i am solving the challanges or does the end justify the means?