为什么不返回“ mrcf”值?

时间:2019-02-05 18:41:54

标签: python python-3.x

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,我已经很喜欢这种语言了:)

1 个答案:

答案 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建议的那样,反转循环更为有效