0
通常を見つけながら、プログラムが小さなため、エラーをスローしませんが、それはこれらの番号に来るとき、それは間違った除算結果私はEXPLANATION書いたもの長整数のpythonでの除算エラー最小公倍数
def leastCommonMultiple(n1, n2):
a=n1
b=n2
while n2!=0:
(n1, n2) = (n2, n1 % n2)
print (n1) # greatest common divisior for given input is 5
print(a*b) # for given numbers 231871064940156750
return int((a*b)/n1) #wrong result 46374212988031352
numStr=input()
nums=numStr.split()
num1=int(nums[0])
num2=int(nums[1])
lcm=leastCommonMultiple(num1, num2)
print (lcm)
Input:
226553150 1023473145
Your output:
46374212988031352
Correct output:
46374212988031350
返します
をleastCommonMultiple = (Num1*Num2)/greatestCommonDivisor
そこでwhileループでIはユークリッド方法
を使用してgreatestCommonDivisor
を発見し、私は、次式を使用(LCM = n1*n2/ GCD)
私は問題をはっきりと説明したいと思います。この問題を解決するにはどうしたらよいですか?
参照してください:http://stackoverflow.com/questions/27946595/how-to-manage-docs-of-huge-numbers-in-python – jedwards
ありがとう、それは私に特別な情報を教えてくれました。幸いにも私はちょうど問題を発見した。私は自分の問題についてより良い検索をしようとします –