Forum INFOMATH
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-17%
Le deal à ne pas rater :
(Black Friday) Apple watch Apple SE GPS + Cellular 44mm (plusieurs ...
249 € 299 €
Voir le deal

Nombres Parfaits

4 participants

Aller en bas

Nombres Parfaits Empty Nombres Parfaits

Message par lamia Mar 29 Jan - 1:06

Un nombre parfait est un nombre entier n strictement supérieur à 1 qui est égal à la somme de ses diviseurs.

exemples :

6 est un nombre parfait ==> 6 = 1 + 2 + 3
28 est un nombre parfait ==> 28 = 1 + 2 + 4 + 7 + 14


Voilà une solution proposée par Manianis (dans http://manianis.sitesled.com/)
Code:

(************************************************************************************)
(* Algorithme de recherche des nombres parfait (Classique)                          *)
(*----------------------------------------------------------------------------------*)
(* Auteur  : MANI Mohamed Anis                                                      *)
(************************************************************************************)

program nombre_parfaits; uses wincrt;

function Est_Parfait(n : longint):boolean;
var p : boolean;
        s, i, f : longint;
begin
        s:=1; f:= n div 2;
        for i:=2 to f do
                  if (n mod i = 0) then s:=s+i;
        Est_Parfait := (s = n);
end;

var i, n : longint;
begin
        Writeln('Recherche de nombres parfaits classique');
       
        Write('Entrer un entier n positif : '); Readln(n);
        for i:=1 to n do
        begin
                  if Est_Parfait(i) then
                            writeln(i);                                                   
        end;
end.

Bon j'ai une question sur ce code: pourquoi la limite f de la boucle for est le resultat de la division entiére du nombre en question par 2 (f:=n div 2)? Et es ce que c'est la seule limite qu'on peut avoir ou c'est juste une proposition?

Merci Manianis pour cette solution.
Et merci d'avance.
lamia
lamia
Modérateur
Modérateur

Féminin
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6800
Date d'inscription : 04/11/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue996/1000Nombres Parfaits Empty_bar_bleue  (996/1000)

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par manianis Mar 29 Jan - 1:54

Pas de quoi Lamia. C'est gentil de votre part. Vous auriez dû poster le sujet comme un exercice.

En Fait : Un nombre parfait est égal à la somme de ses diviseurs sauf lui même.

Il est clair que le diviseur maximal d'un nombre entier est sa moitié.

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6254
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue999/1000Nombres Parfaits Empty_bar_bleue  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par Napoléon Mar 29 Jan - 11:24

Voilà un exemple qui explique l'approche de manianis:
Prenons un exemple, n = 24
Les diviseurs de 24 sont:
Code:
1 et 24
2 et 12
3 et 08
4 et 06

On remarque que le plus grand diviseur différent de 24 est sa moitié 12. Donc, il est inutile de parcourir tous les nombres i inférieurs à n pour trouver ses diviseurs.
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue999/1000Nombres Parfaits Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par Napoléon Mar 29 Jan - 11:31

Sauf que j'ai une remarque très importante à propos du n div 2.

On peut faire beaucoup mieux manianis et se contenter d'arrêter la recherche à Racine de n.

Code:
  s := 1;
  i := 2;
  while (i <= sqrt(n)) do
  begin
      if (n mod i=0) then
        s := s + i + (n div i);
      i := i + 1;
  end;


Il y a un gain énorme par rapport à n div 2.

Qu'en pensez-vous ?
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue999/1000Nombres Parfaits Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par manianis Mar 29 Jan - 13:35

C'est correct, il s'agit d'une optimisation que j'avais prise en compte.

http://manianis.sitesled.com/manisoft/algorithms/nbrpar01.pas

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6254
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue999/1000Nombres Parfaits Empty_bar_bleue  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par lamia Mer 30 Jan - 0:03

manianis a écrit:Vous auriez dû poster le sujet comme un exercice.
Oui vous avez raison, désolée.


Merci nabiL et manianis pour l'eclaircissement.
lamia
lamia
Modérateur
Modérateur

Féminin
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6800
Date d'inscription : 04/11/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue996/1000Nombres Parfaits Empty_bar_bleue  (996/1000)

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par manianis Mer 30 Jan - 0:50

lamia a écrit:
manianis a écrit:Vous auriez dû poster le sujet comme un exercice.
Oui vous avez raison, désolée.
Merci nabiL et manianis pour l'eclaircissement.
Ne t'en fait pas Lamia. queen

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6254
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue999/1000Nombres Parfaits Empty_bar_bleue  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par methodiX Mer 30 Jan - 2:17

Nous savons qu'il existe une infinité de nombres premiers Nombres Parfaits Icon_wink
Est-il de même pour les nombres parfaits?

... développez ce point si ça vous plaisir.
methodiX
methodiX
Admin
Admin

Masculin
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7253
Date d'inscription : 22/03/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue1000/1000Nombres Parfaits Empty_bar_bleue  (1000/1000)

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par lamia Mer 30 Jan - 2:27

Le nombre est limité pas comme pour les nombres premiers. Voici un extrait de wikipedia:


Les 4 premiers nombres parfaits sont connus depuis l'antiquité. Depuis, le total est passé à 44 nombres parfaits seulement (au 11/09/2006).
Les douze premiers nombres parfaits sont :


  • 6 = 1 + 2 + 3
  • 28 = 1 + 2 + 4 + 7 + 14
  • 496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
  • 8 128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1 016 + 2 032 + 4 064
  • 33 550 336
  • 8 589 869 056
  • 137 438 691 328
  • 2 305 843 008 139 952 128
  • 2 658 455 991 569 831 744 654 692 615 953 842 176
  • 191 561 942 608 236 107 294 793 378 084 303 638 130 997 321 548 169 216
  • 13 164 036 458 569 648 337 239 753 460 458 722 910 223 472 318 386 943 117 783 728 128
  • 14 474 011 154 664 524 427 946 373 126 085 988 481 573 677 491 474 835 889 066 354 349 131 199 152 128

Et la liste complete : http://amicable.homepage.dk/perfect.htm
lamia
lamia
Modérateur
Modérateur

Féminin
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6800
Date d'inscription : 04/11/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue996/1000Nombres Parfaits Empty_bar_bleue  (996/1000)

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par methodiX Jeu 31 Jan - 23:47

Nombres Parfaits 36118561
methodiX
methodiX
Admin
Admin

Masculin
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7253
Date d'inscription : 22/03/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue1000/1000Nombres Parfaits Empty_bar_bleue  (1000/1000)

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par manianis Ven 1 Fév - 0:40

methodiX a écrit:Nombres Parfaits 36118561

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6254
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
Nombres Parfaits Left_bar_bleue999/1000Nombres Parfaits Empty_bar_bleue  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

Nombres Parfaits Empty Re: Nombres Parfaits

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum