Track
/
Zig
Zig
/
Esercizi
/
Numeri perfetti
Numeri perfetti

Numeri perfetti

Facile

Istruzioni

Determina se un numero è perfetto, abbondante o difettoso in base allo schema di classificazione dei numeri interi positivi di Nicomaco (60 - 120 d.C.).

Il matematico greco Nicomaco ideò uno schema di classificazione dei numeri interi positivi, che assegna ciascuno di essi in modo univoco a una delle categorie perfetto, abbondante o difettoso, in base alla loro somma dei divisori propri. La somma dei divisori propri è definita come la somma dei fattori di un numero, escluso il numero stesso. Per esempio, la somma dei divisori propri di 15 è 1 + 3 + 5 = 9.

Perfetto

Un numero è perfetto quando è uguale alla somma dei suoi divisori propri. Per esempio:

  • 6 è un numero perfetto perché 1 + 2 + 3 = 6
  • 28 è un numero perfetto perché 1 + 2 + 4 + 7 + 14 = 28

Abbondante

Un numero è abbondante quando è minore della somma dei suoi divisori propri. Per esempio:

  • 12 è un numero abbondante perché 1 + 2 + 3 + 4 + 6 = 16
  • 24 è un numero abbondante perché 1 + 2 + 3 + 4 + 6 + 8 + 12 = 36

Difettoso

Un numero è difettoso quando è maggiore della somma dei suoi divisori propri. Per esempio:

  • 8 è un numero difettoso perché 1 + 2 + 4 = 7
  • I numeri primi sono difettosi

Compito

Implementa un modo per determinare se un numero dato è perfetto. A seconda del track linguistico che segui, potresti anche dover implementare un modo per determinare se un numero dato è abbondante o difettoso.

Asserzione

Per questo esercizio, diciamo che vogliamo che chi chiama sia responsabile di chiamare classify solo con un input diverso da zero. Quindi fai in modo che la funzione classify asserisca che il suo input è diverso da zero. Per maggiori dettagli, vedi la Zig Language Reference e l'implementazione di std.debug.assert.

Tuttavia, nota che questo esercizio al momento non verifica un input pari a 0 (perché std.testing non supporta ancora l'aspettativa di un panic).

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Zig Exercism

Vuoi iniziare Numeri perfetti?

Iscriviti a Exercism per imparare e padroneggiare Zig con 104 esercizi e il mentoring di persone reali, tutto gratis.