Cálculo de Números Perfeitos
Publicado por Fagner Amaral de Souza Candido (última atualização em 09/06/2011)
[ Hits: 8.488 ]
Homepage: https://github.com/fagnercandido
Olá PessoALL,
O código a seguir é bem simples: ele calcula os números perfeitos. Os números perfeitos são aqueles que podem ser compostos pela soma dos seus divisores menores que o mesmo.
Por exemplo:
6 = 1+2+3 = 6
28 = 1+2+4+7+14
Qualquer dúvida, sugestões, críticas serão sempre bem-vindas,
@fagner_candido
fagner7777777@gmail.com
fCandido
''' Sintese : Objetivo : Determinar os numeros perfeitos Entrada : n valores Saida : Numeros que se enquadram na condicao Autor : f_Candido @fagner_candido fagner7777777@gmail.com ''' import time class NPerfeitos: def __init__(self): self.totalSomatorio = 0 self.valorInicial = 30 self.contador = 2 self.listaSomatorio = [1] def calcula(self): ''' Metodo que que calcula os numeros perfeitos ''' while(True): if self.contador == self.valorInicial: self.totalSomatorio = self.somatorio(self.listaSomatorio) if self.totalSomatorio == self.valorInicial: print self.valorInicial time.sleep(2) self.alteraAtributos() else: print self.valorInicial self.alteraAtributos() if self.isDivisivel(self.valorInicial, self.contador): self.listaSomatorio.append(self.contador) self.contador = self.contador + 1 def isDivisivel(self, dividendo, divisor): ''' Metodo que compara a divisibilidade ''' if((dividendo%divisor) == 0): return True else: return False def somatorio(self, lista): ''' Metodo que realiza o somatorio ''' somatorioTotal = 0 for auxiliar in lista: somatorioTotal = somatorioTotal + auxiliar return somatorioTotal def alteraAtributos(self): ''' Reinicializa os atributos ''' self.valorInicial = self.valorInicial + 1 self.contador = 2 self.listaSomatorio = [] self.listaSomatorio.append(1) self.totalSomatorio = 0 objNPerfeitos = NPerfeitos() objNPerfeitos.calcula()
Usando for no shell do python =)
Cálculo da fórmula de Bhaskara
Nenhum comentário foi encontrado.
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Abrir um arquivo URL pelo Clipper (9)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









