Numeros perfeitos

Publicado por N 27/05/2005

[ Hits: 11.909 ]

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

Utilizando matrizes

clean.h - Biblioteca para limpar um determinado espaço no terminal

Estrutura de dados em C -> Fila Circular com operador módulo

putchar

Calculando fatorial


  

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