From a23a3c556f487d3aff1f1b4b88c4fd2be9f7c5a8 Mon Sep 17 00:00:00 2001
From: "adrian.spycher" <adrian.spycher@etu.hesge.ch>
Date: Thu, 5 Jan 2023 14:10:47 +0100
Subject: [PATCH] fermat_factorization handle false n

---
 algo.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/algo.py b/algo.py
index 44a45ee..76121b8 100644
--- a/algo.py
+++ b/algo.py
@@ -110,8 +110,9 @@ def fermat_factorization(n):
     """
     
     a = math.ceil(math.sqrt(n))
+    # a = 26262277040 - 10
     b = 0
-    while(True):
+    while(a <= n): # a cannot be greater than n, because : n = (a + b) * q > 0 => a <= n
         b2 = a**2 - n
         
         if (is_square(b2)):
@@ -120,6 +121,8 @@ def fermat_factorization(n):
         
         a += 1
         
+    if(a > n): print("The Fermat's factorization didn't work on n")
+    
     return (a, b)
 
 def decode_msg(M):
-- 
GitLab