Cálculo de Números Perfeitos
Publicado por Fagner Amaral de Souza Candido (última atualização em 09/06/2011)
[ Hits: 8.296 ]
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()
O número 3025 possui a seguinte característica: 30 + 25 = 55 -> 55*55 = 3025
Desenhando uma estrela com Python
Usando for no shell do python =)
Nenhum comentário foi encontrado.
Desktop Linux ganha fôlego enquanto distros refinam experiência e segurança
Wayland em alta, IA em debate e novos ventos para distros e devices
Qt 6.10 e Python 3.14 puxam o ritmo do software livre nesta quarta
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Como mudar o nome de dispositivos Bluetooth via linha de comando
Adicionando o repositório backports no Debian 13 Trixie
Meu Amigo não consegue entrar em meu mundo, via tailscale, hamachi e z... (1)
Erro ao fazer remaster usando Penguin eggs (1)
Warcraft II Remastered no Linux? (0)
queria saber como instalar o android power tools igual ao winux no lin... (7)