Module: (Python) Sub-rotinas: Procedimentos e Funções - 2


Problem

5/8

Funções lógicas. Números Perfeitos

Theory Click to read/hide

Funções lógicas

Freqüentemente, os programadores usam funções booleanas que retornam valores booleanos "verdadeiros" ou "falso" (verdadeiroou falso)
Essas funções são úteis para   verifique algumas propriedades.
Vamos considerar dois exemplos de como escrever uma função lógica que verifica se um número é par.
 
Descrição Exemplo de sub-rotina
1) Melhor caminho: o resultado da expressão n % 2 == 0 será verdadeiro (Verdadeiro) ou falso (Falso) def isEven(n): retorno (n % 2 == 0)
2) Você pode escrever assim, mas é melhor não fazer um registro mais longo de qualquer maneira def isEven(n): se n % 2 == 0: retornar verdadeiro; outro: retorna Falso

E a última observação sobre como trabalhar com funções e procedimentos: o número de funções e procedimentos no programa não é limitado. Além disso, uma sub-rotina pode chamar outra sub-rotina e até ela mesma.
 

Problem

Um número perfeito é um número igual à soma de todos os seus divisores menores que ele mesmo (por exemplo, o número 6 = 1 + 2 + 3). Escreva um programa que receba um número natural N e determine se o número N é perfeito. Usar  uma função para encontrar a soma dos divisores de um número e uma função lógica para verificar se o número é perfeito ou não.
 

Entrada
A string de entrada contém um número natural .

Impressão
Se o número – perfeito, o programa deve exibir a palavra 'SIM', caso contrário – a palavra 'NÃO'.

 

Exemplos
# Entrada Saída
1 28 SIM
2 29 NÃO