Numeros perfeitos
Publicado por N 27/05/2005
[ Hits: 12.188 ]
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
--
/*
########################################################
# 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;
}
}
}
Utilização de Ponteiros em C (2)
Nenhum comentário foi encontrado.
librePods: liberte seus AirPods em 2026
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Instalando e definindo as novas fontes Adwaita no GNOME
Configurar aviso da temperatura da CPU no Conky
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Após todos esses anos... youtube! (0)
Conky não mostra temperaturas da CPU no notebook (14)
Registro do 'last&qu... errado [RESOLVIDO] (9)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (2)









