From b0833eb96b223522993eafe98b6b0ec8f40b84c9 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 14:19:42 +0000 Subject: [PATCH] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- algorithms/cryptography/shor_algorithm.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/algorithms/cryptography/shor_algorithm.py b/algorithms/cryptography/shor_algorithm.py index b5ac08f59..1cdefaa3c 100644 --- a/algorithms/cryptography/shor_algorithm.py +++ b/algorithms/cryptography/shor_algorithm.py @@ -1,12 +1,14 @@ import math import random + def gcd(a, b): """Computes the greatest common divisor using Euclidean algorithm.""" while b: a, b = b, a % b return a + def modular_exponentiation(base, exp, mod): """Computes (base^exp) % mod using fast modular exponentiation.""" result = 1 @@ -17,6 +19,7 @@ def modular_exponentiation(base, exp, mod): exp //= 2 return result + def find_order(a, N): """Finds the smallest r such that a^r ≡ 1 (mod N)""" r = 1 @@ -26,6 +29,7 @@ def find_order(a, N): return None return r + def shor_algorithm(N): """Simulates Shor’s Algorithm classically to factorize N.""" if N % 2 == 0: @@ -49,6 +53,7 @@ def shor_algorithm(N): if 1 < factor2 < N: return factor2, N // factor2 + # Example usage if __name__ == "__main__": N = 15 # You can test with 21, 35, 55, etc.