求最大公约数——辗转相除法(欧几里得法)
a,b,大数放a,小数放b,a÷b=temp,若temp=0,则b为最大公约数;反之,b放到a中,temp放到b中,重复。
尝试一:
# 计算两个数的最大公约数,用函数做
# greatest common division
def getgcd(num1, num2):
“””获取num1、num2的最大公约数”””
_if num1 == num2:
print(“The greatest common division is: “ + str(num1))
elif num1 > num2:
a = num1
b = num2
temp = a / b
while temp:
a = b
b = temp
temp = a / b
print(“The greatest common division is: “ + str(b))
elif num1 < num2:
a = num2
b = num1
temp = a / b
while temp:
a = b
b = temp
temp = a / b
print(“The greatest common division is: “ + str(b))
num1 = int(input(“Please enter the first number:”))
num2 = int(input(“Please enter the second number:”))
get_gcd(num1, num2)
结果:
Please enter the first number:9
Please enter the second number:6
The greatest common division is: 7.416347076017091e+300
思考:
temp = a / b是商,要考虑余数。
尝试二:
# 计算两个数的最大公约数,用函数做
# greatest common division
def getgcd(num1, num2):
“””获取num1、num2的最大公约数”””
_if num1 == num2:
print(“The greatest common division is: “ + str(num1))
elif num1 > num2:
a = num1
b = num2
temp = a % b
while temp:
a = b
b = temp
temp = a % b
print(“The greatest common division is: “ + str(b))
elif num1 < num2:
a = num2
b = num1
temp = a % b
while temp:
a = b
b = temp
temp = a % b
print(“The greatest common division is: “ + str(b))
number1 = int(input(“Please enter the first number:”))
number2 = int(input(“Please enter the second number:”))
get_gcd(number1, number2)
结果:
Please enter the first number:25
Please enter the second number:50
The greatest common division is: 25
Please enter the first number:9
Please enter the second number:6
The greatest common division is: 3
最小公倍数
两个数的乘积等于这两个数的最大公约数与最小公倍数的积
# 计算两个数的最大公约数,用函数做
# greatest common division
def getgcd(num1, num2):
“””获取num1、num2的最大公约数”””
_if num1 == num2:
b = num1
# print(“The greatest common division is: “ + str(b))
elif num1 > num2:
a = num1
b = num2
temp = a % b
while temp:
a = b
b = temp
temp = a % b
# print(“The greatest common division is: “ + str(b))
elif num1 < num2:
a = num2
b = num1
temp = a % b
while temp:
a = b
b = temp
temp = a % b
# print(“The greatest common division is: “ + str(b))
return b
number1 = int(input(“Please enter the first number:”))
number2 = int(input(“Please enter the second number:”))
gcd = get_gcd(number1, number2)
lcm = number1 * number2 / gcd
print(“The lowest common multiple is “ + str(lcm))
Please enter the first number:3
Please enter the second number:9
The lowest common multiple is 9.0
