Percursos
/
Zig
Zig
/
Exercícios
/
Números perfeitos
Números perfeitos

Números perfeitos

Fácil

Instruções

Determina se um número é perfeito, abundante ou deficiente, com base no esquema de classificação de Nicómaco (60 - 120 d.C.) para números inteiros positivos.

O matemático grego Nicómaco concebeu um esquema de classificação para os números inteiros positivos, identificando cada um como pertencendo de forma única às categorias de perfeito, abundante ou deficiente, com base na sua soma dos divisores próprios. A soma dos divisores próprios é definida como a soma dos fatores de um número, sem incluir o próprio número. Por exemplo, a soma dos divisores próprios de 15 é 1 + 3 + 5 = 9.

Perfeito

Um número é perfeito quando é igual à sua soma dos divisores próprios. Por exemplo:

  • 6 é um número perfeito porque 1 + 2 + 3 = 6
  • 28 é um número perfeito porque 1 + 2 + 4 + 7 + 14 = 28

Abundante

Um número é abundante quando é menor do que a sua soma dos divisores próprios. Por exemplo:

  • 12 é um número abundante porque 1 + 2 + 3 + 4 + 6 = 16
  • 24 é um número abundante porque 1 + 2 + 3 + 4 + 6 + 8 + 12 = 36

Deficiente

Um número é deficiente quando é maior do que a sua soma dos divisores próprios. Por exemplo:

  • 8 é um número deficiente porque 1 + 2 + 4 = 7
  • Os números primos são deficientes

Tarefa

Implementa uma forma de determinar se um determinado número é perfeito. Dependendo da linguagem que estás a aprender, podes também ter de implementar uma forma de determinar se um determinado número é abundante ou deficiente.

Assert

Neste exercício, vamos supor que queremos que seja quem chama a função a garantir que só passa a classify um valor de entrada diferente de zero. Por isso, faz com que a função classify use um assert para garantir que o seu valor de entrada é diferente de zero. Para mais detalhes, consulta a Zig Language Reference e a implementação de std.debug.assert.

No entanto, repara que este exercício ainda não testa um valor de entrada de 0 (porque o std.testing ainda não suporta esperar um pânico).

Editar via GitHub A ligação abre numa nova janela ou separador
Zig Exercism

Estás pronto para começar Números perfeitos?

Inscreve-te no Exercism para aprenderes e dominares Zig com 104 exercícios, e mentoria humana real, tudo grátis.