--------------------------------------------------------------------------    
MAC-110 -  comando "while"   e  comando "if-else"
==============================================================================
/*
 * arquivo: perfeito.c
 * -------------------
 * Dado um inteiro n > 0, este programa verifica se 
 * n é perfeito. Dizemos que n é perfeito se n é 
 * igual `a soma de seus divisores estritamente menores que n. 
 * Ex: n = 6 é perfeito pois n = 6 = 1 + 2 + 3. 
 */


#include <stdio.h>

int main()
{
    int n,		/* inteiro a ser testado se é perfeito */
        d,		/* candidato a divisor de n */
        soma;

    printf("Digite o valor de n: ");
    scanf("%d", &n);
    soma = 0;
    d = 1;
    while (d < n) {
	if (n % d == 0)		/* Veja OBS abaixo */
	    soma = soma + d;
	d = d + 1;
    }
    if (soma == n)
	printf("%d e' perfeito.\n", n);
    else
	printf("%d nao e' perfeito.\n", n);

    return 0;
}

/*  ----------------------------------
*  OBS: O resultado de n % d eŽ o resto da divisao inteira de n por d.
* 
*     Se o resto da divisao de n por d 
*     e' igual a zero entao d eŽdivisor de n 
*/