*This page is under construction.*

It's time to publish the most optimal solution for finding the greatest divisor (GCD) and the least common multiple (LCM).

Maybe the solution looks a bit of messy but I'll update the page and clarify everything ASAP.

## Greatest Common Divisor

`import math as math import random as random import sys as sys sys.setrecursionlimit(1000000000)`

`def EuclidGCD(a, b): if b == 0: return a return EuclidGCD(b, a % b)`

`def stressTest(): # Stress Test while True: randOne = random.randrange( 100000, 100000000000000000000000000000000000000000) randTwo = random.randrange( 100000, 100000000000000000000000000000000000000000) print(randOne) print(randTwo) Niev = math.gcd(randOne, randTwo) fast = EuclidGCD(randOne, randTwo) print("Fast GCD: ", fast) print("Niev GCD: ", Niev) if fast != Niev: break`

`def main(): a = int(input()) b = int(input()) print("GCD of A and B: ", EuclidGCD(a, b))`

`if __name__ == "__main__": main()`

## Least Common Multiple

` ````
# Instead of rewriting, here we imported
# our previously created GCD algorithm
import GCD as GCD
def GetLcm(a, b):
return int(a*b/GCD.EuclidGCD(a, b))
print(GetLcm(21, 6))
```