Script Python - Calcular Número Perfeitos
sexta-feira, outubro 10, 2008 13:16Postado em Programação/Script, Python
O que é um número perfeito?
R: É um número que tem ele mesmo como resultado da soma de todos os seus divisores.
Ex. 6.
Divisores de 6: 1, 2 e 3.
1 + 2 + 3 = 6.
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#Criado em Sex 2008-10-10 12:15 GMT -4
#Autor Renan Fernandes renan@kauamanga.com.br http://www.kauamanga.com.br
#Função: Verificar números perfeitos
#funcao para o calcula, ela recebe o "numero" que será calculado
def calcula(numero):
#define a varivel resultado como 0, nela contera a soma dos divisores
resultado = 0;
#define a variavel valores como vazia, nela contera os divisores
valores="";
#inicia um intervalo entre 1 e o numero a ser calculado
for i in range(1,numero):
#se o numero atual em "i" for um divisor exato de "numero"
if numero % i == 0:
#acrescenta à variavel "resultado" o valor
resultado += i;
#caso a variavel valores ainda esteja vazia ele so adiciona o número, pra ficar "1 + 2 ..." em vez de " + 1 + 2 ..."
if valores == "":
valores=str(i);
else:
valores += " + " + str(i);
#caso a soma de todos os divisores seja igual ao numero
if resultado == numero:
return str(numero) + " é um número perfeito.\n" + str(valores);
#caso contrario retorna vazio
else:
return "";
print "Digite até qual número você quer saber quais são perfeitos.";
#pega o número
valor = int(raw_input());
#comeca um intervalo entre 1 e o numero digitado
for i in range(1,valor):
#limpa/cria a variavel resposta
resposta = ""
#chama a funcao calcula() e coloca o resultado na variavel resposta
resposta = str(calcula(i));
#se a varivel resposta não voltou vazia então imprime o retorno.
if resposta != "":
print resposta;
Exemplo de saida:
renan@debian:~/Trabalhos/Python$ ./numeros_perfeitos.py
Digite até qual número você quer saber quais são perfeitos.
1000000
6 é um número perfeito.
1 + 2 + 3
28 é um número perfeito.
1 + 2 + 4 + 7 + 14
496 é um número perfeito.
1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
8128 é um número perfeito.
1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064
Posts relacionados
- Python Script - Verificar números primos
- Script Python - Formula de Báskara
- Ótimas apostilas de Python
- Aumentando o número de usuarios do Firefox
- Script de Install para o Ubuntu
- Fonte C/C++ - Fahrenheit para Centigrados e vice-versa
- Fonte C/C++ - Formula de Baskara
- Quem inventou o Vestibular?
- Mortal Kombat - Comédia
Vocẽ pode ser alertado sobre comentarios assinando esse feed RSS 2.0 feed.







