In this article, we will demonstrate different approaches to writing a JavaScript Program to Find all Divisors of a Number. We will have an input number and print all the divisors of that number in the form of a resultant array.
Methods to Find All Divisors of a Number
- Naive Approach
- Recursive Approach
Method 1: Naive Approach
In this method, we will use a JavaScript loop to iterate the possible factors and Math.pow() method to get the square root of the number. Instead of Math.pow() method, we can also use Math.sqrt() or i*i < n condition.
Example:
Javascript
function prime(n) { let result = [1,n]; for (let i = 2; i < Math.pow(n, 0.5); i++) { if (n % i == 0) { result.push(i); result.push(n / i); } } return result.sort((a, b) => a - b); } const num = 90; console.log( "Prime factors of " + num + ": " + prime(num)); |
Prime factors of 90: 1,2,3,5,6,9,10,15,18,30,45,90
Method 2: Recursive Approach
In this method, we will call the function recursively and return the output with the spread operator to get the array output.
Example:
Javascript
function recursiveFactor(n, d) { if (n < 1) return []; if (n == 1) return [1]; if (n == 2) return [1,2]; if (n/d<2) return [n]; if (n % d == 0) return [d, ...recursiveFactor(n, d + 1)]; return recursiveFactor(n, d + 1); } const num = 85; console.log( "All factors of " + num + ": " + recursiveFactor(num, 1) ); |
All factors of 85: 1,5,17,85