mirror of
https://github.com/DeaDvey/mathgenerator.git
synced 2025-11-28 06:25:23 +01:00
Merge pull request #353 from Git-Harshit/new1
Add Greatest Common Divisor of N Numbers Generator Program
This commit is contained in:
25
mathgenerator/funcs/basic_math/greatest_common_divisor.py
Normal file
25
mathgenerator/funcs/basic_math/greatest_common_divisor.py
Normal 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"])
|
||||
Reference in New Issue
Block a user