Pular para o conteúdo
🛠️ToolsShed

Perfect Number Checker

Verifique se um número é perfeito, deficiente ou abundante. Encontre divisores próprios e somas de divisores.

Encontrar Números Perfeitos

Números Perfeitos Conhecidos

Sobre esta ferramenta

Números perfeitos representam um raro fenômeno matemático onde um inteiro positivo é igual à soma de seus divisores próprios—uma propriedade tão elegante que os antigos matemáticos a consideravam sagrada. Esses números estão profundamente conectados ao estudo da teoria dos números, fatoração de primos e beleza matemática, sendo muito mais que meras curiosidades. Os números perfeitos têm cativado a imaginação de matemáticos por mais de dois mil anos, e seu mistério continua hoje com apenas 51 exemplos conhecidos apesar de séculos de busca.

Use este verificador para explorar a classificação de qualquer número inteiro: é perfeito, abundante (com soma de divisores superior a si mesmo) ou deficiente (com soma de divisores inferior)? A ferramenta calcula instantaneamente todos os divisores próprios e sua soma, fornecendo transparência completa sobre a estrutura do número. Isso é inestimável para estudantes aprendendo propriedades de divisibilidade, matemáticos investigando padrões número-teóricos, pesquisadores trabalhando em algoritmos de primos de Mersenne, ou qualquer pessoa curiosa sobre a estrutura aritmética oculta dentro dos números.

Interessantemente, todos os números perfeitos conhecidos são pares e seguem a fórmula elegante de Euler: 2^(p−1) × (2^p − 1) onde (2^p − 1) é um número primo de Mersenne. A busca por novos números perfeitos é equivalente a descobrir novos números primos de Mersenne—uma busca que conecta a matemática recreativa com a pesquisa computacional de ponta através de projetos como GIMPS. Quer você esteja verificando uma conjectura, ensinando propriedades de divisores ou simplesmente maravilhando-se com a estrutura matemática, esta ferramenta transforma a teoria dos números abstrata em resultados tangíveis e verificáveis.

Perguntas Frequentes

Implementação de Código

def get_proper_divisors(n: int) -> list[int]:
    """Get all proper divisors of n (excluding n itself)."""
    if n <= 1:
        return []
    divisors = [1]
    i = 2
    while i * i <= n:
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n // i)
        i += 1
    return sorted(divisors)

def check_perfect(n: int) -> dict:
    """Check if n is perfect, deficient, or abundant."""
    if n <= 0:
        return {"error": "Must be positive"}

    divisors = get_proper_divisors(n)
    divisor_sum = sum(divisors)

    if divisor_sum == n:
        classification = "perfect"
    elif divisor_sum < n:
        classification = "deficient"
    else:
        classification = "abundant"

    return {
        "number": n,
        "divisors": divisors,
        "divisor_sum": divisor_sum,
        "is_perfect": divisor_sum == n,
        "classification": classification,
        "difference": n - divisor_sum
    }

# Known perfect numbers
perfect_numbers = [6, 28, 496, 8128, 33550336]
for p in perfect_numbers:
    r = check_perfect(p)
    print(f"{p}: {r['classification']} (divisors sum = {r['divisor_sum']})")
    print(f"  Divisors: {r['divisors']}")

# Find abundant numbers up to 100
print("\nAbundant numbers up to 100:")
abundant = [n for n in range(2, 101) if check_perfect(n)["classification"] == "abundant"]
print(abundant)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.