Projeto Encontre Números Perfeitos

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como encontrar todos os números perfeitos dentro do intervalo de 1 a 1000. Números perfeitos são inteiros positivos que são iguais à soma de seus divisores próprios, excluindo o próprio número.

👀 Pré-visualização

## if the range is 1~10, the output should be:
Perfect numbers: 6  ## 6 = 1 + 2 + 3

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como implementar a função perfect_number para encontrar todos os números perfeitos dentro de um determinado intervalo
  • Como testar a função perfect_number e verificar a correção dos resultados
  • Como otimizar e melhorar a função perfect_number para melhor desempenho e legibilidade

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Compreender o conceito de números perfeitos e suas propriedades matemáticas
  • Escrever uma função para encontrar todos os números perfeitos dentro de um intervalo especificado
  • Testar e depurar seu código para garantir que ele funcione corretamente
  • Otimizar seu código para melhor eficiência e legibilidade
  • Aplicar suas habilidades de resolução de problemas para melhorar suas habilidades de programação

Entenda o Problema

Nesta etapa, você aprenderá sobre o conceito de números perfeitos e os requisitos para o projeto.

Números perfeitos são inteiros positivos que são iguais à soma de seus divisores próprios, excluindo o próprio número. Por exemplo, os fatores de 6 são 1, 2 e 3. Como 6 = 1 + 2 + 3, 6 é um número perfeito.

O objetivo deste projeto é:

  1. Completar a função perfect_number em perfect_number.py para encontrar todos os números perfeitos dentro do intervalo de 1 a 1000.
  2. Imprimir todos os números perfeitos encontrados, separados por um espaço.
✨ Verificar Solução e Praticar

Implemente a Função perfect_number

Abra o arquivo perfect_number.py e localize a função perfect_number. Esta função é responsável por encontrar todos os números perfeitos dentro do intervalo de 1 a 1000.

Aqui está o código inicial fornecido:

def perfect_number():
    """
    Encontra todos os números perfeitos dentro do intervalo de 1 a 1000.

    Returns:
        list: Uma lista de números perfeitos encontrados dentro do intervalo de 1 a 1000.
    """
    result = []

    for num in range(1, 1001):
        factors = []
        for i in range(1, num):
            if num % i == 0:
                factors.append(i)
        if sum(factors) == num:
            result.append(num)

    return result

Vamos analisar o código passo a passo:

  1. A função perfect_number é definida para encontrar todos os números perfeitos dentro do intervalo de 1 a 1000.
  2. Uma lista vazia result é inicializada para armazenar os números perfeitos.
  3. A função itera pelos números de 1 a 1000 (inclusive).
  4. Para cada número, a função encontra seus fatores (excluindo o próprio número) e os adiciona à lista factors.
  5. Se a soma dos fatores for igual ao número, o número é considerado um número perfeito e é adicionado à lista result.
  6. Finalmente, a função retorna a lista result contendo todos os números perfeitos encontrados.
✨ Verificar Solução e Praticar

Teste a Função perfect_number

Para testar a função perfect_number, adicione o seguinte código no final do arquivo perfect_number.py:

if __name__ == "__main__":
    result = perfect_number()
    print("Perfect numbers:", " ".join(map(str, result)))

Este código chamará a função perfect_number e imprimirá todos os números perfeitos encontrados, separados por um espaço.

Salve o arquivo perfect_number.py e execute o script:

python perfect_number.py

A saída deve ser:

Perfect numbers: 6 28 496

Isso significa que a função perfect_number está funcionando corretamente e encontrou os números perfeitos dentro do intervalo de 1 a 1000.

✨ Verificar Solução e Praticar

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.