找到两个数字的lcm

时间:2016-06-14 13:32:15

标签: python python-2.7 python-3.x

我被赋予了计算任意两个数字的lcm的任务。我已经在python中编码。问题是当我在python2.7下编译它时,我得到的结果与我在python3下编译时的结果不同。

import sys

def gcd(a,b):     
   if b == 0:
     return a
   remainder = a % b
   return gcd(b,remainder)

def lcm(a, b):
  return int( (a*b) / gcd(a,b))

if __name__ == '__main__':
   input = sys.stdin.read()
   a, b = map(int, input.split())
   print(int(lcm(a, b)))

输入

  

226553150 1023473145

输出

  

46374212988031352(在python3.5下)

     

46374212988031350(在python2.7下)

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

在Python 2中,当处理两个整数时,除法运算符/将执行整数除法,而不是浮点除法。您可以通过从__future__

导入分部来强制Python 2中的Python 3行为
>>> from __future__ import division
>>> 2/3
1.5