#辗转相除法
#最大公约数
def Least_common_multiple(num1,num2):
if(num1%num2==0):
return num2
else:
return Least_common_multiple(num2,num1%num2)
#最小公倍数
def Greatest_common_divisor(num1,num2,num3,step):
if(num1%num2==0 and num1%num3==0):
return num1
else:
return Greatest_common_divisor(num1+step,num2,num3,step)
m=input("请选择...\n1.最大公约数\n2.最小公倍数\n")
try:
if (int(m) == 1):
n1 = int(input("请输入要进行计算的第一个数"))
n2 = int(input("请输入要进行计算的第二个数"))
if (n2 > n1):
Result = Least_common_multiple(n2, n1)
print(str(n1) + "和" + str(n2) + "的最大公约数为" + str(Result))
elif (n1 > n2):
Result = Least_common_multiple(n1, n2)
print(str(n1) + "和" + str(n2) + "的最大公约数为" + str(Result))
else:
print("两个计算数相同,结果就是数本身")
elif (int(m) == 2):
n1 = int(input("请输入要进行计算的第一个数"))
n2 = int(input("请输入要进行计算的第二个数"))
step = Least_common_multiple(n1, n2)
if (n2 > n1):
Result = Greatest_common_divisor(n2, n1, n2, step)
print(str(n1) + "和" + str(n2) + "的小公倍数数为" + str(Result))
elif (n1 > n2):
Result = Greatest_common_divisor(n1, n2, n1, step)
print(str(n1) + "和" + str(n2) + "的最小公倍数为" + str(Result))
else:
print("两个计算数相同,结果就是数本身")
else:
print("请选择1或者2选项")
except ValueError:
print("请选择1或者2选项")
*****************************************************************************************************************************
#穷举法
#最大公约数
def Least_common_multiple(num1,num2):
count=num2;
while count>0:
if(num1%count==0and num2%count==0):
return count
else:
count=count-1
#最小公倍数
def Greatest_common_divisor(num1,num2):
count=num1;
while count<=num1*num2:
if(count%num1==0 and count%num2==0):
return count
else:
count=count+1
m=input("请选择...\n1.最大公约数\n2.最小公倍数\n")
try:
if (int(m) == 1):
n1 = int(input("请输入要进行计算的第一个数"))
n2 = int(input("请输入要进行计算的第二个数"))
if (n2 > n1):
Result = Least_common_multiple(n2, n1)
print(str(n1) + "和" + str(n2) + "的最大公约数为" + str(Result))
elif (n1 > n2):
Result = Least_common_multiple(n1, n2)
print(str(n1) + "和" + str(n2) + "的最大公约数为" + str(Result))
else:
print("两个计算数相同,结果就是数本身")
elif (int(m) == 2):
n1 = int(input("请输入要进行计算的第一个数"))
n2 = int(input("请输入要进行计算的第二个数"))
step = Least_common_multiple(n1, n2)
if (n2 > n1):
Result = Greatest_common_divisor(n2, n1)
print(str(n1) + "和" + str(n2) + "的小公倍数数为" + str(Result))
elif (n1 > n2):
Result = Greatest_common_divisor(n1, n2)
print(str(n1) + "和" + str(n2) + "的最小公倍数为" + str(Result))
else:
print("两个计算数相同,结果就是数本身")
else:
print("请选择1或者2选项")
except ValueError:
print("请选择1或者2选项")
************************************************************************************************************************************
#相减法
#最大公约数
def Least_common_multiple(num1,num2):
while num1!=num2:
if num1 > num2:
num1 = num1 - num2
continue
elif num2 > num1:
num2 = num2 - num1
continue
return num1
#最小公倍数=两数乘积/最大公约数
#最小公倍数
def Greatest_common_divisor(num1,num2):
return (num1*num2)/Least_common_multiple(num1,num2)
m=input("请选择...\n1.最大公约数\n2.最小公倍数\n")
try:
if (int(m) == 1):
n1 = int(input("请输入要进行计算的第一个数"))
n2 = int(input("请输入要进行计算的第二个数"))
if (n2 > n1):
Result = Least_common_multiple(n2, n1)
print(str(n1) + "和" + str(n2) + "的最大公约数为" + str(Result))
elif (n1 > n2):
Result = Least_common_multiple(n1, n2)
print(str(n1) + "和" + str(n2) + "的最大公约数为" + str(Result))
else:
print("两个计算数相同,结果就是数本身")
elif (int(m) == 2):
n1 = int(input("请输入要进行计算的第一个数"))
n2 = int(input("请输入要进行计算的第二个数"))
step = Least_common_multiple(n1, n2)
if (n2 > n1):
Result = Greatest_common_divisor(n2, n1)
print(str(n1) + "和" + str(n2) + "的小公倍数数为" + str(Result))
elif (n1 > n2):
Result = Greatest_common_divisor(n1, n2)
print(str(n1) + "和" + str(n2) + "的最小公倍数为" + str(Result))
else:
print("两个计算数相同,结果就是数本身")
else:
print("请选择1或者2选项")
except ValueError:
print("请选择1或者2选项")
***********************************************************************************************************************************
#最大公约数
def Least_common_multiple(num1,num2):
count=num2;
while count>0:
if(num1%count==0and num2%count==0):
return count
else:
count=count-1
#最小公倍数
def Greatest_common_divisor(num1,num2):
count=num1;
while count<=num1*num2:
if(count%num1==0 and count%num2==0):
return count
else:
count=count+1
#三个数的最小公倍数
def Three_Greatest_common_divisor(num1,num2,num3):
x=Greatest_common_divisor(num1,num2)
if x>num3:
Result=Greatest_common_divisor(x,num3)
else:
Result=Greatest_common_divisor(num3,x)
return Result
#三个数的最大公约数
def Three_Least_common_multiple(num1,num2,num3):
x=Least_common_multiple(num1,num2)
if(x>num3):
Result=Least_common_multiple(x,num3)
else:
Result=Least_common_multiple(num3,x)
return Result
m=input("请选择...\n1.最大公约数\n2.最小公倍数\n")
try:
if (int(m) == 1):
n1 = int(input("请输入要进行计算的第一个数"))
n2 = int(input("请输入要进行计算的第二个数"))
n3 = int(input("请输入要进行计算的第三个数"))
if (n2 > n1):
Result = Three_Least_common_multiple(n2, n1,n3)
print(str(n1) + "和" + str(n2) +"和"+str(n3)+ "的最大公约数为" + str(Result))
elif (n1 > n2):
Result = Three_Least_common_multiple(n1, n2,n3)
print(str(n1) + "和" + str(n2) +"和"+str(n3)+ "的最大公约数为" + str(Result))
else:
print("两个计算数相同,结果就是数本身")
elif (int(m) == 2):
n1 = int(input("请输入要进行计算的第一个数"))
n2 = int(input("请输入要进行计算的第二个数"))
n3 = int(input("请输入要进行计算的第三个数"))
if (n2 > n1):
Result = Three_Greatest_common_divisor(n2, n1, n3)
print(str(n1) + "和" + str(n2)+"和"+str(n3) + "的小公倍数数为" + str(Result))
elif (n1 > n2):
Result = Three_Greatest_common_divisor(n1, n2, n3)
print(str(n1) + "和" + str(n2)+"和"+str(n3) + "的最小公倍数为" + str(Result))
else:
print("两个计算数相同,结果就是数本身")
else:
print("请选择1或者2选项")
except ValueError:
print("请选择1或者2选项")