Nombre parfait

Fermé
shiloh - 25 févr. 2011 à 15:31
kelsett Messages postés 353 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 13 octobre 2014 - 26 févr. 2011 à 11:45
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

kelsett Messages postés 353 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 13 octobre 2014 62
Modifié par kelsett le 25/02/2011 à 18:02
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/
1
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 26/02/2011 à 01:18
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 26/02/2011 à 10:02
@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,
0
kelsett Messages postés 353 Date d'inscription dimanche 9 juillet 2006 Statut Membre Dernière intervention 13 octobre 2014 62
26 févr. 2011 à 11:45
@jisisv
Hehe, oui mais ceci étant dit, lis ce qu'il y a écrit pour les nombres parfaits impairs... "En 2009, les mathématiciens ignorent si des nombres parfaits impairs existent"... ;)

@fiddy
Ok, merci pour l'info, je ne savais pas.
0