Cálculo de Números Perfeitos

Publicado por Fagner Amaral de Souza Candido (última atualização em 09/06/2011)

[ Hits: 8.005 ]

Homepage: https://github.com/fagnercandido

Download NPerfeitos.py




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

  



Esconder código-fonte

'''
   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()

Scripts recomendados

Calculadora científica (wip)

Gerador de palpites para Mega Sena (com módulo random)

Nº em extenso

Calculadora de IMC

Validador e gerador de CPF em Python


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts