m = int(input('Enter value of m : \t'))
n = int(input('Enter the value of n : \t'))
def GCD(m, n):
for i in range(1,min(m,n)+1):
if (m % i) == 0 and (n % i) == 0:
mrcf = i
return (mrcf)
这什么都不返回。为什么?-btb。我刚开始使用Py,我已经很喜欢这种语言了:)
答案 0 :(得分:2)
如果我了解此功能GCD的意图,则可能会多次更新mrcf,而不仅仅是返回(m % i) == 0 and (n % i) == 0
的第一次出现:
m = int(input('Enter value of m : \t'))
n = int(input('Enter the value of n : \t'))
def GCD(m, n):
for i in range(min(m,n), 1, -1):
if (m % i) == 0 and (n % i) == 0:
return i
return 1
print(GCD(m, n))
更新:如@Barmar建议的那样,反转循环更为有效