diff --git a/rsa.py b/rsa.py
index 97d7d77073b5750f595cf3a1891d3de292dd8dbf..788a85c1c8a7c1251b8b2a47200f56aebc4402d8 100644
--- a/rsa.py
+++ b/rsa.py
@@ -34,22 +34,31 @@ def get_bezout_coefficients(a, b):
 
 
 def modular_inverse(a, n):
+    """Compute the modular inverse of a number a modulo n.
+
+    Args:
+        a (int): The number to reverse.
+        n (int): The modulo.
+
+    Returns:
+        int: The reversed number.
+    """
     coefficients = get_bezout_coefficients(a, n)
+
     if a * coefficients[0] % n == 1:
         return coefficients[0] % n
     return None
 
 
-def pgcd(a, b):
-    if b > a:
-        temp = a
-        a = b
-        b = temp
-
-    return get_bezout_coefficients(a, b)[0]
+def get_q_p(n):
+    """Get the value of q and p from n by bruteforce.
 
+    Args:
+        n (int): One of the two value of the public key.
 
-def get_q_p(n):
+    Returns:
+        tuple: The two value that represent n.
+    """
     p = 2
     while True:
         if n % p == 0:
@@ -59,6 +68,16 @@ def get_q_p(n):
 
 
 def modular_pow(base, exponent, modulus):
+    """Compute the modular power.
+
+    Args:
+        base (int): The value of a part of the message to be decoded.
+        exponent (int): The private key.
+        modulus (int): One of the two value of the public key.
+
+    Returns:
+        int: The int value of the value, ready to be decoded to utf-8.
+    """
     if modulus == 1:
         return 0
     result = 1
@@ -71,75 +90,80 @@ def modular_pow(base, exponent, modulus):
     return result
 
 
-e = 5249
-n = 1653973759
-messages = (
-    1511395078,
-    260436590,
-    1630654276,
-    1190458520,
-    790492067,
-    515550941,
-    297140366,
-    755589582,
-    647075331,
-    1191707844,
-    901889430,
-    660956124,
-    1500654109,
-    984322720,
-    1275630738,
-    1244853107,
-    1445928913,
-    1312523810,
-    265093060,
-    933013993,
-    1375592761,
-    195866064,
-    534502441,
-    928270408,
-    166404031,
-    621272622,
-    1304987439,
-    905393335,
-    55120151,
-    772595721,
-    506609577,
-    1172751778,
-    162439707,
-    233959833,
-    1468937795,
-    1358701120,
-    901889430,
-    495995733,
-    1524090698,
-    1043509086,
-    934992314,
-    1545639379,
-    1061595897,
-    1348452679,
-    1135067876,
-    905393335,
-    621272622,
-    55120151,
-    233959833,
-    1220119699,
-    708711266,
-    517797467,
-    195866064,
-    1579814353,
-    412378626,
-    498875436,
-    445485200,
-    7656659
-)
-
-p, q = get_q_p(n)
-d = modular_inverse(e, (p - 1) * (q - 1))
-result = ""
-for x in messages:
-    tmp = modular_pow(x, d, n)
-    mBytes = tmp.to_bytes(tmp.bit_length(), byteorder="little")
-    result += mBytes.decode("utf-8")
-
-print(result)
+def main():
+    e = 5249
+    n = 1653973759
+    messages = (
+        1511395078,
+        260436590,
+        1630654276,
+        1190458520,
+        790492067,
+        515550941,
+        297140366,
+        755589582,
+        647075331,
+        1191707844,
+        901889430,
+        660956124,
+        1500654109,
+        984322720,
+        1275630738,
+        1244853107,
+        1445928913,
+        1312523810,
+        265093060,
+        933013993,
+        1375592761,
+        195866064,
+        534502441,
+        928270408,
+        166404031,
+        621272622,
+        1304987439,
+        905393335,
+        55120151,
+        772595721,
+        506609577,
+        1172751778,
+        162439707,
+        233959833,
+        1468937795,
+        1358701120,
+        901889430,
+        495995733,
+        1524090698,
+        1043509086,
+        934992314,
+        1545639379,
+        1061595897,
+        1348452679,
+        1135067876,
+        905393335,
+        621272622,
+        55120151,
+        233959833,
+        1220119699,
+        708711266,
+        517797467,
+        195866064,
+        1579814353,
+        412378626,
+        498875436,
+        445485200,
+        7656659
+    )
+
+    p, q = get_q_p(n)
+    d = modular_inverse(e, (p - 1) * (q - 1))
+    result = ""
+    for x in messages:
+        tmp = modular_pow(x, d, n)
+        mBytes = tmp.to_bytes(tmp.bit_length(), byteorder="little")
+        result += mBytes.decode("utf-8")
+
+    print(result)
+
+
+if __name__ == "__main__":
+    main()