Numeros perfeitos
Publicado por N 27/05/2005
[ Hits: 12.184 ]
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;
}
}
}
Algoritmo de ordenação: Inserction Sort
Nenhum comentário foi encontrado.
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (7)
De volta para o futuro - ou melhor, para o presente (parte 2) (0)









