我被赋予了计算任意两个数字的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下)
有人可以帮助我吗?
答案 0 :(得分:0)
在Python 2中,当处理两个整数时,除法运算符/
将执行整数除法,而不是浮点除法。您可以通过从__future__
>>> from __future__ import division
>>> 2/3
1.5