[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
This commit is contained in:
pre-commit-ci[bot] 2025-01-29 14:19:42 +00:00
parent f610031f9e
commit b0833eb96b

View File

@ -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 Shors 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.