Menu
CoddyTech

Perfect Number

Um divisor próprio de n é um divisor positivo menor que o próprio n. Um número perfeito é igual à soma de seus divisores próprios: 6 = 1 + 2 + 3. Você recebe um inteiro positivo n. Retorne true se n for perfeito e false caso contrário.

Função

isPerfect(n: integer) → boolean
ninteger
o inteiro positivo a ser testado
Retornaboolean
verdadeiro se n for igual à soma de seus divisores próprios, falso caso contrário

Restrições

  • 1 ≤ n ≤ 108

Exemplos

Entrada
n = 28
Saída
true
Explicação
Os divisores próprios de 28 são 1, 2, 4, 7 e 14. Eles somam 28, então 28 é perfeito.

lock icon+16 testes ocultos ao enviar

challenge icon

Para ir além

Todo número perfeito par tem a forma 2^(p-1) × (2^p-1), em que 2^p-1 é primo. Você consegue listar todos os números perfeitos menores que 10^8 usando essa fórmula, sem testar cada número?

Redefinir código
def isPerfect(n):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

n = 28

Esperado

true