>>> def lcm(a,b):
if a<<b:
c=a
a=b
b=c
c=0
lit=[a,b,c]
n=3
while (not lit[n%3]%lit[(n%3)+1]==0):
lit[(n%3)+2]=lit[n%3]%lit[(n%3)+1]
if lit[(n%3)+2]==0:
d=lit[(n%3)+2]
print d
else:
n=n+1
这是代码,试图构建一个函数 lcm 找到 a 和 b 的最小公倍数。不是最干净的代码,但遗憾的是这就是我能做的。如果这个代码块可以更轻一点,那就太好了。
所以,呃,回到正题,我调用了 lcm,它只是脱口而出错误消息。
这就是它所说的:
>>> lcm(78696,19332)
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
lcm(78696,19332)
File "<pyshell#1>", line 10, in lcm
lit[(n%3)+2]=lit[n%3]%lit[(n%3)+1]
IndexError: list assignment index out of range
Aaaaand 我完全不知道我现在应该做什么。
我现在能做什么?