Factorize a number in JavaScript



We are required to write a JavaScript function that takes in a positive integer as the only argument. The function should construct and return an array of all the numbers that exactly divide the input number.

For example −

If the input number is −

const num = 12;

Then the output should be −

const output = [1, 2, 3, 4, 6, 12];

Example

Following is the code −

const findFactors = (num = 1) => {
   let half = Math.floor(num / 2);
   const res = [1]; // 1 will be a part of every solution.
   let i, j;
   num % 2 === 0 ? (i = 2, j = 1) : (i = 3, j = 2);
   for (i; i <= half; i += j) {
      if(num % i === 0){
         res.push(i);
      };
   };
   res.push(num);
   return res;
};
console.log(findFactors(12));

Output

Following is the output on console −

[ 1, 2, 3, 4, 6, 12 ]

Advertisements