这与我如何做无关,更多的是关于这种方法的错误。我设法用其他方法解决了这个问题,但我不知道为什么我不能用这个方法。我错过了什么
输入示例:4,6 预期产出:12 实际产出:4
n1, n2 = map(int, input("n1 and n2: ").split(','))
def lcmCalc (n1,n2):
i = 2
lcm = 1
while (n1 != 1) and (n2 != 1):
if n1 % i == 0 and n2 % i == 0:
lcm *= i
n1 = n1/i
n2 = n2/i
elif n1 % i != 0 and n2 % i == 0:
lcm *= i
n2 = n2/i
elif n1 % i == 0 and n2 % i != 0:
lcm *= i
n1 = n1/i
else:
i += 1
return lcm
print(lcmCalc(n1,n2))
你很接近。以下是编辑:
当外环终止时,n1或n2中的任何一个仍可能在^{以上。结果中需要包含该剩余值
我很想利用这种关系:
lcm(a,b)=| a.b |/gcd(a,b)
当然,gcd(a,b)=gcd(b,a%b)&;gcd(a,0)=a
所以我的代码是:
或者-如果您不反对标准库提供的一点帮助:
相关问题 更多 >
编程相关推荐