Files
freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/rosetta-code/factors-of-an-integer.russian.md

1.8 KiB

title, id, challengeType, forumTopicId, localeTitle
title id challengeType forumTopicId localeTitle
Factors of an integer 597f1e7fbc206f0e9ba95dc4 5 302265 Факторы целого числа

Description

Напишите функцию, возвращающую множители положительного целого числа.

Этими факторами являются положительные целые числа, по которым число, подлежащее учету, можно разделить, чтобы получить положительный целочисленный результат.

///

Instructions

Tests

tests:
  - text: <code>factors</code> is a function.
    testString: assert(typeof factors === 'function');
  - text: <code>factors(45)</code> should return <code>[1,3,5,9,15,45]</code>.
    testString: assert.deepEqual(factors(45), ans[0]);
  - text: <code>factors(53)</code> should return <code>[1,53]</code>.
    testString: assert.deepEqual(factors(53), ans[1]);
  - text: <code>factors(64)</code> should return <code>[1,2,4,8,16,32,64]</code>.
    testString: assert.deepEqual(factors(64), ans[2]);

Challenge Seed

function factors(num) {
  // Good luck!
}

After Tests

const ans=[[1,3,5,9,15,45],[1,53],[1,2,4,8,16,32,64]];

Solution

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;
}