--- title: Factors of an integer id: 597f1e7fbc206f0e9ba95dc4 challengeType: 5 --- ## Description
Write a function that returns the factors of a positive integer as an array. These factors are the positive integers by which the number being factored can be divided to yield a positive integer result.
## Instructions
## Tests
```yml tests: - text: factors is a function. testString: assert(typeof factors === 'function', 'factors is a function.'); - text: factors(45) should return [1,3,5,9,15,45]. testString: assert.deepEqual(factors(45), ans[0], 'factors(45) should return [1,3,5,9,15,45].'); - text: factors(53) should return [1,53]. testString: assert.deepEqual(factors(53), ans[1], 'factors(53) should return [1,53].'); - text: factors(64) should return [1,2,4,8,16,32,64]. testString: assert.deepEqual(factors(64), ans[2], 'factors(64) should return [1,2,4,8,16,32,64].'); ```
## Challenge Seed
```js function factors(num) { // Good luck! } ```
### After Test
```js const ans=[[1,3,5,9,15,45],[1,53],[1,2,4,8,16,32,64]]; ```
## Solution
```js function factors(num) { let n_factors = [], i, sqr=Math.floor(Math.sqrt(num)); for (i = 1; i <=sqr ; i += 1) if (num % i === 0) { n_factors.push(i); if (num / i !== i) n_factors.push(num / i); } n_factors.sort(function(a, b){return a - b;}); return n_factors; } ```