diff --git a/boolean_algebra/and_gate.py b/boolean_algebra/and_gate.py
index 6ae66b5b0a77..650017b7ae10 100644
--- a/boolean_algebra/and_gate.py
+++ b/boolean_algebra/and_gate.py
@@ -1,8 +1,8 @@
 """
-An AND Gate is a logic gate in boolean algebra which results to 1 (True) if both the
-inputs are 1, and 0 (False) otherwise.
+An AND Gate is a logic gate in boolean algebra which results to 1 (True) if all the
+inputs are 1 (True), and 0 (False) otherwise.
 
-Following is the truth table of an AND Gate:
+Following is the truth table of a Two Input AND Gate:
     ------------------------------
     | Input 1 | Input 2 | Output |
     ------------------------------
@@ -12,7 +12,7 @@
     |    1    |    1    |    1   |
     ------------------------------
 
-Refer - https://www.geeksforgeeks.org/logic-gates-in-python/
+Refer - https://www.geeksforgeeks.org/logic-gates/
 """
 
 
@@ -32,6 +32,18 @@ def and_gate(input_1: int, input_2: int) -> int:
     return int(input_1 and input_2)
 
 
+def n_input_and_gate(inputs: list[int]) -> int:
+    """
+    Calculate AND of a list of input values
+
+    >>> n_input_and_gate([1, 0, 1, 1, 0])
+    0
+    >>> n_input_and_gate([1, 1, 1, 1, 1])
+    1
+    """
+    return int(all(inputs))
+
+
 if __name__ == "__main__":
     import doctest
 
diff --git a/other/time_algo_exec.py b/other/time_algo_exec.py
new file mode 100644
index 000000000000..39b251ef8e64
--- /dev/null
+++ b/other/time_algo_exec.py
@@ -0,0 +1,42 @@
+# Author : Bosolindo Edhiengene Roger
+# email  : rogerbosolinndo34@gmail.com
+
+# This module contains codes about algorithms complexity as to estimate the time
+# an algorithm will take to be run.
+# Why do we find it usable ?
+# Because, knowing this kind of information tells you if your code or solution is
+# efficient or not ; it helps you not to fall trying to run such a code.
+
+
+def calc(operations: dict) -> float:
+    """
+    calc(operation: dict) -> float:
+    This function aims to calculate how long an algorithm take,
+    knowing only primary operations
+    :param operations:
+        A dictionary where the values are tuples, consisting of the number of times
+        an operation is performed and its execution time, and the key should,
+        preferably, be the name of the operation for better clarity and usability.
+    :return: the time needed for the execution of this algorithm
+    >>> operations1 = {"addition":(2, 0.1), "subtraction":(1, 0.2)}
+    >>> operations2 = {"addition":(2, 0.1), "subtraction":(1, 0.2, 1)}
+    >>> calc(operations1)
+    0.4
+    >>> calc(operations2)
+    0
+    """
+    temps = 0
+    for couple in operations.values():
+        # Case you give a shorter or a longer tuple
+        if len(couple) != 2:
+            return 0
+        # Otherwise
+        temps += couple[0] * couple[1]
+
+    return temps
+
+
+if __name__ == "__main__":
+    import doctest
+
+    doctest.testmod()