w3resource

JavaScript: Compute the factors of a positive integers

JavaScript Function: Exercise-13 with Solution

Write a JavaScript function to compute the factors of a positive integer.

Sample Solution: -

HTML Code:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Compute the factors of a positive integer</title>
</head>
<body>
  
</body>
</html>

JavaScript Code:

function factors(n)
{
 var num_factors = [], i;
 
 for (i = 1; i <= Math.floor(Math.sqrt(n)); i += 1)
  if (n % i === 0)
  {
   num_factors.push(i);
   if (n / i !== i)
    num_factors.push(n / i);
  }
 num_factors.sort(function(x, y)
   {
     return x - y;});  // numeric sort
     return num_factors;
    }
console.log(factors(15));  // [1,3,5,15] 
console.log(factors(16));  // [1,2,4,8,16] 
console.log(factors(17));  // [1,17]

Sample Output:

[1,3,5,15]
[1,2,4,8,16]
[1,17]

Flowchart:

Flowchart: JavaScript function: Compute the factors of a positive integer

Live Demo:

See the Pen JavaScript - Compute the factors of a positive integers-function-ex- 13 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript function which says whether a number is perfect.
Next: Write a JavaScript function to convert an amount to coins.

What is the difficulty level of this exercise?



JavaScript: Tips of the Day

JavaScript: Implicit type coercion

function sum(a, b) {
  return a + b;
}

sum(1, '2');

JavaScript is a dynamically typed language: we don't specify what types certain variables are. Values can automatically be converted into another type without you knowing, which is called implicit type coercion. Coercion is converting from one type into another.

In this example, JavaScript converts the number 1 into a string, in order for the function to make sense and return a value. During the addition of a numeric type (1) and a string type ('2'), the number is treated as a string. We can concatenate strings like "Hello" + "World", so what's happening here is "1" + "2" which returns "12".

Ref: https://bit.ly/323Y0P6