Prépa Code Connexion Inscription

Exercices de programmation pour classes préparatoires

← Retour aux exercices

Exponentiation modulaire rapide

ocaml ★★★☆☆

Écrire une fonction récursive expo_mod : int -> int -> int -> int telle que expo_mod a n m renvoie $a^n \bmod m$, en utilisant le principe de l'exponentiation rapide pour s'exécuter en $O(\log n)$ multiplications.

On suppose n >= 0 et m > 0. On ne cherche pas à gérer les très grands nombres : la seule contrainte est d'avoir une complexité logarithmique.

Par convention, expo_mod a 0 m = 1 mod m.

Exemples

AppelRésultat attendu
expo_mod 2 10 1000 24
expo_mod 3 0 5 1

Votre code

Connectez-vous pour soumettre du code.