Cálculo de Números Perfeitos

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

[ Hits: 6.509 ]

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
[email protected]
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
         [email protected]

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

Teste de Escolha Aleatória

Existência de triângulo em Python 3

Controle Remoto a Area de Trabalho

Rename PenDrive

Script para calcular indice de massa corporal


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts