Найти тему
JuniorJs React c 0

JavaScript практика для Junior

Создайте функцию divisors(num) которая будет принимать целое число и возвращать массив чисел которые делят это число нацело (за исключением 1 и самого себя). Если число делится только на себя то функция должна вернуть строку "делится только на себя"

Например

divisors(12); // должна вернуть [2,3,4,6]
divisors(25); // должна вернуть [5]
divisors(13); // должна вернуть "13 делится только на себя "

НЕ ЧИТАЙТЕ ДАЛЬШЕ ПОКА НЕ РЕШИТЕ ЗАДАЧУ ИЛИ НЕ СМОЖЕТЕ РЕШИТЬ!!!

При решении этой задачи я воспользовался знаниями которые у меня были.

Первым делом я объявил пустой массив

var odd = [];

Дальше мне нужно было узнать на какие числа делится заданное число. Я воспользовался циклом for он более наглядней и начал проверять все числа на которые нацело поделят заданное число.

for(var i = 2; i < num; i++){ if(num% i == 0) }

Далее если число подходит то можно его добавлять в наш массив

for(var i = 2; i < num; i++) {
if(num% i == 0 ) {
odd.push(i);
}

Остаётся только задача если число делится только на себя и на 1.

Делаем простую проверку. Так как в коде выше мы добавляли числа в наш массив. С этого следует "если массив пуст то число делится только на себя"

if(odd.length == 0) return num+ ' делится только на себя '

Вот и готова наша функция.

function divisors(num) {
var odd = [];
for(var i = 2; i < num; i++){
if(integer % i == 0){
odd.push(i);
} }
if(odd.length == 0) return num+ ' is prime'
else return odd; };

Вот еще несколько решений

-2

-3

Если вы решили эту задачу иным способом присылайте мне на почту решение. Мне будет полезно узнать новый подход.

JuniorJs@yandex.ru