CommencezCommencez gratuitement

Collatz

Un petit fait amusant en mathématiques : des règles simples peuvent avoir de grandes conséquences. Par exemple, la conjecture de Collatz demande si deux règles très simples peuvent ramener n'importe quel entier à 1.
On l'énonce généralement ainsi :

  • Pour un nombre pair, le diviser par 2
  • Pour un nombre impair, le multiplier par 3 puis ajouter 1
    Mettons-la à l'épreuve !

Remarque : Si votre code dépasse le délai d'exécution, vérifiez attentivement la logique de votre structure if-else (ou consultez l'Indice).

Cette activité fait partie du cours

Java intermédiaire

Voir le cours

Instructions de l’exercice

  • Indiquez la condition de terminaison appropriée.
  • Appelez une méthode pour vérifier si n est pair.
  • Traitez correctement le cas impair — cela ne devrait se produire que si la valeur initiale de n est impaire.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

class Collatz {
  static boolean isEven(int n) {
    return n % 2 == 0;
  }
  
  public static void main(String[] args) {
    int n = 1634;
    int i = 0;
    System.out.print(n);
    // Enter the appropriate termination condition
    while (____) {
      // Call a method to check if n is even
      if (____(n)) {
        System.out.println(" is even");
        n /= 2;
      } // Handle the odd case correctly. All non-even integers are odd
      ____ {
        System.out.println(" is odd");
        n = n * 3 + 1;
      }
      System.out.print(n);
      i += 1;
    }
    System.out.println(" reached in " + i + " steps");
  }
}
Modifier et exécuter le code