Add Greatest Common Divisor of N Numbers Generator Program

This commit adds a new greatest common divisor program that takes a
number and upperBound of numbers as keyword argument and returns
GCD of N random generated numbers
This commit is contained in:
Git-Harshit
2021-10-07 21:59:45 +05:30
parent b1f8eb0032
commit 172f96ce3a

View File

@@ -0,0 +1,25 @@
from .__init__ import *
def greatestCommonDivisorOfTwoNumbers(number1, number2):
number1 = abs(number1)
number2 = abs(number2)
while number2>0: number1, number2 = number2, number1%number2
return number1
def generator_function(numbersCount=2, maximalNumberLimit=10**9, format='string'):
numbersCount = max(numbersCount, 2)
numbers = [ random.randint(0, maximalNumberLimit) for number in range(numbersCount) ]
greatestCommonDivisor = greatestCommonDivisorOfTwoNumbers(numbers[0], numbers[1])
for index in range(1, numbersCount):
greatestCommonDivisor = greatestCommonDivisorOfTwoNumbers(numbers[index], greatestCommonDivisor)
if format == "string":
return "GCD(" + ",".join(map(str, numbers)) + ") = " + str(greatestCommonDivisor)
elif format == "latex":
return ("\\(GCD(" + ",".join(map(str, numbers)) + f") = {greatestCommonDivisor}\\)")
else: return greatestCommonDivisor
greatest_common_divisor = Generator("Greatest Common Divisor of N Numbers", 999, generator_function, ["maximalNumberLimit=1000000000"])