Модуль: (Python) Подпрограммы: процедуры и функции - 2


Задача

5/8

Логические функции. Совершенные числа

Теория Нажмите, чтобы прочитать/скрыть

Логические функции

Часто программисты используют логические функции, которые возвращают логические значения "истина" или "ложь" (true или false)
Такие функции полезны для того, чтобы  проверить какое-либо свойство.
Рассмотрим два примера записи логической функции, которая проверяет число на четность.
 
Описание Пример подпрограммы
1) Лучший способ: результат выражения n % 2 == 0 будет истина (True) или ложь (False)
def isEven(n):
    return (n % 2 == 0)
2) Можно и так записать, но более длинная запись и так лучше не делать
def isEven(n):
    if n % 2 == 0:
        return True;
    else:
        return False

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

Задача

Совершенным называется число, равное сумме всех своих делителей, меньших его самого (например, число 6 = 1 + 2 + 3). Напишите программу, которая вводит натуральное число N и определяет, является ли число N совершенным. Используйте  функцию для нахождения суммы делителей числа и логическую функцию для проверки является ли число совершенным или нет.
 

Входные данные
Входная строка содержит натуральное число .

Выходные данные
Если число – совершенное, программа должна вывести слово 'YES', иначе – слово 'NO'.

 

Примеры
Входные данные Выходные данные
1 28 YES
2 29 NO