Numeros perfeitos

Publicado por N 27/05/2005

[ Hits: 10.327 ]

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

Manipulação do BIT de sinal

Imprimir maior número

Cinema

Utilizando ponteiros na manipulação de strings

Comando continue


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts