Nombre parfait
shiloh
-
kelsett Messages postés 376 Statut Membre -
kelsett Messages postés 376 Statut Membre -
Bonjour, j'aimerais créer un algorithme qui me permettra de dire qu'un nombre est parfait ou non.Mais, je ne sais pas comment s'y prendre.Aider-moi.
1 réponse
-
Vas au plus simple...
En sachant qu'un nombre n est parfait si 2^x(2^(x+1)-1) = n, tu fais une boucle tu les essaies jusqu'à ce que tu trouves...
En gros ca donnerait quelque chose comme:
int x = 8128; bool parfait = false; for (int i = 1; i<=x; i++) { if (2^i(2^(i+1)-1) == x) parfait = true; } if (parfait = true) Console.WriteLine("Le nombre " + x + " est parfait"); else Console.WriteLine("Le nombre " + x + " n'est pas parfait");
Ca c'est en C#, à traduire dans ton langage. C'est pas très beau de tous les essayer jusqu'à trouver, mais bon si tu veux faire simple...
EDIT: ptite faute de ma part, je viens de me rappeler qu'il n'existait rien pour faire les puissances en C# (ni en aucun autre langage à ma connaissance) donc il faut créer une fonction exprès pour le faire... un peu d'aide ici: https://codes-sources.commentcamarche.net/-
Un nombre parfait PAIR
Voir https://fr.wikipedia.org/wiki/Nombre_parfait#Nombres_parfaits_impairs
Johan -
@kelsett
je viens de me rappeler qu'il n'existait rien pour faire les puissances en C#
Je connais pas le langage, mais il y a la fonction qui existe déjà (pas besoin donc d'en créer une autre) : Math.pow(...)
ni en aucun autre langage à ma connaissance
En C, il y a pow, en java, ça existe aussi. En python, c'est natif : 5**2 donne 25.
Et j'en passe.
Cdlt, -
-