[Précédent]
[Index] | [Corrigé] | [Version imprimable]
[Prochain]

5.9
  Nombres amicaux - Enoncé
Niveau 2
 
 
But:
  Ecrire un programme permettant de détecter des nombres amicaux    
Thème:
  Modularisation, algorithme    
Fichiers:
  -    

En mathématiques, deux nombres entiers sont dits amicaux si :

  1. la somme des diviseurs de l’un, m, coïncide avec la somme des diviseurs de l’autre;
  2. et la somme des deux nombres vaut m.

Par exemple 220 et 284 sont amicaux car :

somme des diviseurs de 220 = 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 + 220 = 504
somme des diviseurs de 284 = 1 + 2 + 4 + 71 + 142 + 284 = 504
220 + 284 = 504.

Le but de cet exercice est d’écrire une méthode afficherAmicaux qui prend en entrée un tableau d’entiers et retourne toutes les paires de nombres amicaux qu’il contient.

Chaque paire ne sera affichée qu’une fois.

Proposez une implémentation possible (en Java) pour la méthode afficherAmicaux.

Vous pouvez utiliser l'exemple auivant en guise de programme principal :

  public static void main(String[] args) {
      int[] nombres = {1210, 45, 27, 220, 54, 284, 9890, 120, 1184};
      System.out.println("Les paires de nombres amicaux sont : ");
      afficherAmicaux(nombres);
  }

L'affichage qui en résulte devrait ressembler à ceci :

Les paires de nombres amicaux sont : 
1210 1184
220 284

Modularisez votre code au moyen de méthodes auxiliaires.

 


[Précédent]
[Index] | [Corrigé] | [Version imprimable]
[Prochain]