mirror of
https://github.com/DeaDvey/mathgenerator.git
synced 2025-11-28 06:25:23 +01:00
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:
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