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

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

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

Числа харшад, или числа Нивена, — натуральные числа, делящиеся нацело на сумму своих цифр. Таким числом является, например, 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. Вернуть булевое значение: True, если число является харшадом, и False в противном случае.

Давайте реализуем эту функцию:

def is_harshad(number):
    # Преобразуем число в строку для работы с его цифрами
    num_str = str(number)
    
    # Вычисляем сумму цифр числа
    digit_sum = sum(int(digit) for digit in num_str)
    
    # Проверяем, делится ли число на сумму его цифр без остатка
    return number % digit_sum == 0

Примеры использования функции

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

# Пример 1: Проверка харшадского числа
print(is_harshad(18))  # True
# 18 / (1 + 8) = 18 / 9 = 2

# Пример 2: Проверка нехаршадского числа
print(is_harshad(19))  # False
# 19 / (1 + 9) = 19 / 10 != integer

# Пример 3: Большое харшадское число
print(is_harshad(1729))  # True
# 1729 / (1 + 7 + 2 + 9) = 1729 / 19 = 91
Хотите стать востребованным Python разработчиком?
Присоединяйтесь к курсу Python Тренажер прямо сейчас!
Научитесь решать разнообразные практические задачи по программированию, которые помогут улучшить ваш уровень программирования на Python.
Не упустите шанс стать экспертом в мире разработки – начните свой путь прямо сейчас!
Обнаружили ошибку в этой статье? Хотите уточнить, обновить или добавить что-то?
Все мои статьи доступны для редактирования на GitHub. Буду благодарен за любое улучшение или исправление!