Scrivi la classe PerfectNumber
utile per individuare i numeri perfetti. La classe deve esportare i metodi seguenti:
public static boolean isPerfect(int n)
: ritorna true
se n
è un numero perfetto, false
altrimenti
public static boolean isDefective(int n)
: ritorna true
se n
è un numero difettivo, false
altrimenti
public static int[] getDividers(int n)
: ritorna un array contenente l’elenco dei divisori propri di n
public static long getDividersSum(int[] dividers)
: ritorna la somma dei numeri contenuti nell’array dividers
public static int[] getPerfectNumbers(int min, int max)
: ritorna un array contenente l’elenco dei numeri perfetti presenti nell’intervallo [min
, max
]
public static int[] getDefectiveNumbers(int min, int max)
: ritorna un array contenente l’elenco dei numeri difettivi presenti nell’intervallo [min
, max
]
public static int[] getAbundantNumbers(int min, int max)
: ritorna un array contenente l’elenco dei numeri abbondanti presenti nell’intervallo [min
, max
]
Un numero N
è detto perfetto se la somma dei suoi divisori propri (positivi, N
escluso) è pari ad N
. Ad esempio 28
è un numero perfetto perché sommando i suoi divisori propri (1, 2, 4, 7 e 14
) si ottiene 28
.
Invece se la somma dei divisori di N
è inferiore al suo valore, N
è un numero difettivo, mentre se le somma dei divisori è superiore, N
è un numero abbondante.