awilum.ru
Статьи Курсы Об авторе

Как определить, является ли число харшадом или нет в JavaScript?

Харшадское число, также известное как число Нивена, является числом, которое делится на сумму своих цифр. Другими словами, если число делится на сумму его цифр без остатка, то оно считается харшадским числом. В этой статье мы рассмотрим, как можно определить, является ли число харшадом или нет с помощью JavaScript.

Числа харшад, или числа Нивена, — натуральные числа, делящиеся нацело на сумму своих цифр. Таким числом является, например, 1729, так как 1729 = (1 + 7 + 2 + 9) × 91.


Первые 50 чисел харшад, не меньших 10
10 12 18 20 21 24 27 30 36 40
42 45 48 50 54 60 63 70 72 80
81 84 90 100 102 108 110 111 112 114
117 120 126 132 133 135 140 144 150 152
153 156 162 171 180 190 192 195 198 200

Алгоритм проверки

Прежде чем начать писать код, давайте определим шаги алгоритма, который мы будем использовать для проверки, является ли число харшадом или нет:

  1. Преобразовать число в строку.
  2. Разбить строку на массив символов.
  3. Преобразовать каждый символ обратно в число.
  4. Просуммировать все числа из массива.
  5. Проверить, делится ли исходное число на сумму своих цифр без остатка.

Реализация на JavaScript

Теперь давайте переведем этот алгоритм в код JavaScript:

function isHarshad(number) {
    // Преобразование числа в строку
    let numberStr = number.toString();
    
    // Разбиение строки на массив символов
    let digits = numberStr.split('');
    
    // Просуммировать все числа из массива
    let sum = digits.reduce((acc, curr) => acc + parseInt(curr), 0);
    
    // Проверка, делится ли число на сумму своих цифр без остатка
    return number % sum === 0;
}

Протестируем нашу функцию на нескольких примерах:

console.log(isHarshad(18));   // true
console.log(isHarshad(19));   // false
console.log(isHarshad(2021)); // false
console.log(isHarshad(2024)); // true
Хотите освоить JavaScript и стать востребованным разработчиком?
Присоединяйтесь к курсу JavaScript Базовый уровень прямо сейчас!
Изучите основы и продвинутые концепции, создавайте интерактивные веб-приложения и воплотите свои идеи в реальности. Не упустите шанс стать экспертом в мире разработки – начните свой путь прямо сейчас!
Обнаружили ошибку в этой статье? Хотите уточнить, обновить или добавить что-то?
Все мои статьи доступны для редактирования на GitHub. Буду благодарен за любое улучшение или исправление!