Cálculo de Números Perfeitos

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

[ Hits: 7.818 ]

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

Rename PenDrive

O número 3025 possui a seguinte característica: 30 + 25 = 55 -> 55*55 = 3025

Cálculo FIBONACCI

Sequencia Fibonacci

bissexto.py


  

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