Numeros perfeitos

Publicado por N 27/05/2005

[ Hits: 11.895 ]

Download perfeito.c




Verifica quais números entre o intervalo de 1 ate N número são perfeitos.

Definição de número perfeito: Número perfeito é todo aquele que a soma de seus divisores inteiros, exceto ele proprio, que resultam em um número inteiro que é ele proprio.

Ex.: 6 é um número pefeito.
    * 6/1 = 6;
    * 6/2 = 3;
    * 6/3 = 2;
    * 1+2+3 = 6;

Ex.:

::NUMEROS PERFEITOS::
De 1 a 999

-> 496
-> 28
-> 6
--

  



Esconder código-fonte

/*

   ########################################################
   # N: Nycholas de Oliveira e Oliveira                   #
   # E: nycholas@gmail.com                                #
   # D: Verifica quais números entre o intervalo de 1 ate #
   # D:  N número são perfeitos.                          #
   # S: Uberlandia - MG                                   #
   # S: Brasil                                            #
   ########################################################

*/


#include <stdio.h>

typedef void NADA;
typedef int INTEIRO;
typedef unsigned long int INTEIROLONGO;

INTEIROLONGO entrada(NADA);
INTEIROLONGO somaPerfeito(INTEIROLONGO num);
INTEIROLONGO executa(INTEIROLONGO num);

INTEIRO main (NADA) {

   INTEIROLONGO num;

   num = entrada();
   executa(num);
   

}

INTEIROLONGO entrada (NADA) {

   INTEIROLONGO num;
   
   printf("\n########################################################\n");
   printf("# N: Nycholas de Oliveira e Oliveira                   #\n");
   printf("# E: nycholas@gmail.com                                #\n");
   printf("# E: o_lalertom@hotmail.com(msn)                       #\n");
   printf("# E: 114965471(icq)                                    #\n");
   printf("# D: Verifica quais numeros entre o intervalo de 1 ate #\n");
   printf("# D:  N numero sao perfeitos.                          #\n");
   printf("# S: Uberlandia - MG                                   #\n");
   printf("# S: Brasil                                            #\n");
   printf("########################################################\n\n");

   printf("::NUMEROS PERFEITOS::\n");
   printf("De 1 a ");
   scanf("%d", &num);
   
   return num;

}

INTEIROLONGO somaPerfeito (INTEIROLONGO num) {

   INTEIROLONGO i;
   INTEIROLONGO divisores = 0;
   
   /*
    * Verifica se o número e perfeito.
    *
    * -> Definição de número perfeito: Número perfeito
    * é todo aquele que a soma de seus divisores inteiros,
    * exceto ele proprio, que resultam em um número inteiro 
    * que é ele proprio.
    * Ex.: 6 é um número pefeito.
    * 6/1 = 6;
    * 6/2 = 3;
    * 6/3 = 2;
    * 1+2+3 = 6;
    */

   for (i=1; i<num; i++) {
      if ((num%i) == 0) {
         divisores += i;
      }
   }
   
   /*
    * -> Imprime os números perfeitos entre um intervalo de números.
    * Ex.: De 1 a 9999
    *
    * -> 8128
    * -> 496
    * -> 28
    * -> 6
    * --
    */
    
   if (divisores != 0) {
      if (divisores == num) {
         printf("\n-> %d", num);
      }
   }
 
}

INTEIROLONGO executa (INTEIROLONGO num) {

   INTEIROLONGO numeral;
   
   /*
    * -> Decrementa o número estipulado pelo executor do programa.
    * Para que possa realizar a verificação de todo o intervalo.
    * Ex.: 999, 998, 997, 996...
    */
    
   for (numeral=num; numeral<=num; numeral--) {
      somaPerfeito(numeral);
      if (numeral == 0) {
         printf("\n--\n");
         break;
      }
   }

}

Scripts recomendados

ASCII

calculadora

uso do if

my_strlen

Semi Pronto (C++)


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts