From 25bfef1e36b2f8313476ba79e0aa20642ce65579 Mon Sep 17 00:00:00 2001 From: Nicolas <nicolas.albanesi@etu.hesge.ch> Date: Tue, 21 Dec 2021 11:21:59 +0100 Subject: [PATCH] exp_rapide normalement fonctionelle --- src/exp_rapide.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/exp_rapide.py diff --git a/src/exp_rapide.py b/src/exp_rapide.py new file mode 100644 index 0000000..fe3353d --- /dev/null +++ b/src/exp_rapide.py @@ -0,0 +1,28 @@ +def exp_rapide(nb: int, exp: int, mod: int) -> int: + list_exp = [int(x) for x in bin(exp)[:1:-1]] + + # Créer la liste de l'exp decomposé + a = [] + a.append(nb ** 1 % mod) + for x in range(1, len(list_exp)): + a.append(a[x-1]**2 % mod) + + + # Calcule l'exp rapide + out = 1 + for index, valeur in enumerate(list_exp): + if valeur == 1: + out *= a[index] % mod + + return out % mod + + + +if __name__ == '__main__': + + u = 68393426 + n = 124344401 + d = 29995379 + + # print(exp_rapide(6, 392, 13)) + print(exp_rapide(u, d, n)) -- GitLab