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