没有任何编程基础的菜鸟,初学Python,写的一个求三个数的最小公倍数的代码。
做法是先找出较大的那个数,再用这个数除以其余数看能否被整除,不满足的话继续计算较大数的二倍,三倍…直到这个数能满足被其余两个数整除。
代码如下:
print("寻找三个数的最小公倍数\n")
number1 = int(input("请输入第一个数:")) #依次输入三个数
number2 = int(input("请输入第二个数:"))
number3 = int(input("请输入第三个数:"))
max_number = max(number1,number2,number3) #先找出最大的那个数
i=0 #计数每次加一
none = True #none作为循环条件的变量,用于控制循环何时结束
#循环开始
while none:
i+=1 #初始倍数为1
number = i*max_number #找出较大数的倍数
if number%number1 == 0 and number%number2 == 0 and number%number3 == 0: #判断验证能否被其余数整除
print("\012结果是:",number) #输出结果
none = False #将循环条件的变量变为否,跳出while循环
运行结果:
存在的问题:
代码倒数第三行,只能再次除以较大数,显然是不必要的,多做了一次计算。还不知道怎么解决。。。引入一个序列对它们排序?