 # 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>
<meta charset=utf-8 />
<title>Compute the factors of a positive integer</title>
<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: 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

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