Numeros perfeitos
Publicado por N 27/05/2005
[ Hits: 12.211 ]
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;
}
}
}
Converte Celsius para Farenheit
Parte 5 - Sessão de estudo sobre VETORES
EXEMPLO DA ULTILIZAÇÃO DE PONTEIROS
Nenhum comentário foi encontrado.
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









