Module: (Python) Subroutine: procedure e funzioni - 2


Problem

5/8

Funzioni logiche. Numeri perfetti

Theory Click to read/hide

Funzioni logiche

Spesso i programmatori usano funzioni booleane che restituiscono valori booleani "true" o "falso" (veroo falso)
Tali funzioni sono utili per   controlla alcune proprietà.
Consideriamo due esempi di scrittura di una funzione logica che controlla se un numero è pari.
 
Descrizione Esempio di sottoprogramma
1) Modo migliore: il risultato dell'espressione n % 2 == 0 sarà vero (True) o falso (False)
def èEven(n):
    ritorno (n % 2 == 0)
2) Puoi scriverlo così, ma è comunque meglio non fare un disco più lungo
def isEven(n):
    se n % 2 == 0:
        restituisce vero;
    altro:
        restituisce False

E l'ultima nota sull'utilizzo di funzioni e procedure: il numero di funzioni e procedure nel programma non è limitato. Inoltre, una subroutine può chiamare un'altra subroutine e persino se stessa.
 

Problem

Un numero perfetto è un numero uguale alla somma di tutti i suoi divisori minori di se stesso (ad esempio, il numero 6 = 1 + 2 + 3). Scrivete un programma che inserisca un numero naturale N e determini se il numero N è perfetto. Usa  una funzione per trovare la somma dei divisori di un numero e una funzione logica per verificare se il numero è perfetto o meno.
 

Inserimento
La stringa di input contiene un numero naturale .

Impronta
Se il numero – perfetto, il programma dovrebbe emettere la parola 'SÌ', altrimenti – la parola 'NO'.

 

Esempi
# Input Uscita
1 28
2 29 NO