comment savoir si un nombre est parfait ou non ? - Sciences - Discussions
Marsh Posté le 08-09-2003 à 15:17:40
Grumly- a écrit : un nombre est parfait si il est egal a la somme de ses diviseurs excepté lui meme. |
tu fais la liste de tous ses diviseurs et tu les additionnes
Marsh Posté le 08-09-2003 à 15:20:10
en gros,
soit n ce nombre,
pour chaque nombre de 1 à n-1 tu fais la division de n par ce nombre,
si le reste de la division euclidienne est nul, tu ajoutes ce nombre a ton total.
Marsh Posté le 08-09-2003 à 15:29:22
nofx59 a écrit : en gros, |
De 1 à E(sqrt(n)), ça suffit.
E : partie entière supérieure
sqrt : racine carrée
Marsh Posté le 08-09-2003 à 15:40:39
KZimir a écrit : |
effectivement
j'avais oublié cette optimisation,
Marsh Posté le 08-09-2003 à 16:09:38
KZimir a écrit : |
D'une part, partie entiere inferieure suffit.
D'aute part, je crois qu'il veut une formule explicite, et pas un algorithme/programme. Dans ce cas, la reponse est qu'il n'y en a pas.
sinon, vous n'avez fait que lui repeter que pour connaitre tous les diviseurs, il faut calculer tous les diviseurs... Pas tres informatif...
Marsh Posté le 08-09-2003 à 16:14:44
GregTtr a écrit : |
c pas grave je vais faire comme dit ci dessus si pas le choix
Marsh Posté le 08-09-2003 à 16:15:58
GregTtr a écrit : |
Somme(x pour x dans {div de X})=X c'est une équation explicite, mais ça n'apporte rien. C'est le genre de problème qu'on ne peut traiter qu'algorithmiquement je pense et on lui a donné des pistes
Quant à la partie entière inférieure, c'est possible, mais j'ai eu un doute, alors, tant qu'à faire Après réflexion, tu as raison
Marsh Posté le 08-09-2003 à 16:17:36
KZimir a écrit : |
Marsh Posté le 08-09-2003 à 16:20:13
GregTtr a écrit : |
on ne connait pas forcément ou il en est dans son problème. Il peut très bien parler des diviseurs sans savoir comment les trouver. C'est pour ca que j'ai parlé du reste de la division euclidienne.
Marsh Posté le 17-03-2005 à 18:08:28
Vu qu'il n'existe que 42 nombres parfaits connus, tu peux simplement les lister dans ton programme
Marsh Posté le 17-03-2005 à 18:25:49
J'immagine qu'il veut en trouver de nouveux trés grands.
Et là on doit pouvoire faire de trés sérieuses optimisations avec de l'algorithmique... Calculer la liste des diviseurs d'un nombre (le factoriser en fait) est un problème difficile (explosion combinatoire) mais je crois qu'il existe des approches moins primitives (enfin pas tellement moins) que le "j'essaye tout".
Et pour le cas des nombres parfaits on doit pouvoir démontrer qu'ils vérifient au moins certaines propriétés (par exemple ils ne sont pas premiers) et espérer régler certains cas rapidement.
Marsh Posté le 17-03-2005 à 18:28:49
Je me demande si en Prolog il n'y aurait pas moyen de faire ça assez rapidement...
Marsh Posté le 17-03-2005 à 18:33:36
Code :
|
Donc si tu veux trouver des nombres parfaits cherche les de cette forme.
Déja faire les tests uniquement sur les nombres de ce type va te faire gagner un facteur ENORME. (a moins que ce ne soit une conjecture, faudrait chercher un peux sur internet).
Marsh Posté le 17-03-2005 à 18:50:16
Euh ..
Est-ce que tu es déja allé, au moins, sur www.mersenne.org
Tu y apprendras que tout nombre parfait pair est de la forme 2^(p-1) * (2^p-1), où 2^p-1 est un nombre premier (dit nombre de Mersenne) (ce qui implique d'ailleurs que p est premier mais la réciproque est fausse).
Ex : 28 = 4*7 = 2^(3-1)*(2^3-1) et 7 = 2^3-1 est premier
D'autre part, je crois avoir lu dans le dernier "La recherche" que récemment, on vient de démontrer que, si un nombre parfait impair existe, il comporte, au moins 35 millions de chiffre
Bon courage pour une recherche de ce type !
Marsh Posté le 17-03-2005 à 18:54:41
Koko90 a écrit :
|
En fait, ils verifient une propriété encore plus forte, ils sont de la forme 2^n*(2^(n+1)-1) avec n entier et il faut que 2^(n+1)-1 soit un nombre premier
n=1 ==> 2^(n+1)-1=3 est premier ==> 6 est parfait
n=2 ==> 7 premier ==> 28 est parfait
n=3 ==> 15 pas premier
n=4 ==> 31 premier ==> 496 parfait
n=5 ==> 63 pas premier
n=6 ==> 127 premier ==> 8128 parfait
...
n=12 ==> 33550336 parfait
...
Je crois que tous les nombres parfaits connus s'écrivent comme ça, mais on ne sait pas si ce sont les seuls
Edit : grilled
Marsh Posté le 08-09-2003 à 15:09:59
un nombre est parfait si il est egal a la somme de ses diviseurs excepté lui meme.
par exemple 28 est un nombre parfait car divisible par 1, 2, 4, 7 et 14
28 = 1 + 2 + 4 + 7 + 14
comment mettre ca en equation pour qu a partir de 28 je puisse dire si oui ou non le nombre est parfait ?