Menu
CoddyTech

Perfect Number

Un diviseur propre de n est un diviseur positif inférieur à n lui-même. Un nombre parfait est égal à la somme de ses diviseurs propres : 6 = 1 + 2 + 3. On te donne un entier positif n. Renvoie true si n est parfait et false sinon.

Fonction

isPerfect(n: integer) → boolean
ninteger
l’entier positif à tester
Renvoieboolean
vrai si n est égal à la somme de ses diviseurs propres, faux sinon

Contraintes

  • 1 ≤ n ≤ 108

Exemples

Entrée
n = 28
Sortie
true
Explication
Les diviseurs propres de 28 sont 1, 2, 4, 7 et 14. Leur somme est égale à 28, donc 28 est parfait.

lock icon+16 tests cachés à la soumission

challenge icon

Pour aller plus loin

Tout nombre parfait pair est de la forme 2^(p-1) × (2^p-1) où 2^p-1 est premier. Peux-tu lister tous les nombres parfaits inférieurs à 10^8 à l’aide de cette formule, sans tester chaque nombre ?

Réinitialiser le code
def isPerfect(n):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

n = 28

Attendu

true