2016-07-19 9 views
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)

私は問題をはっきりと説明したいと思います。この問題を解決するにはどうしたらよいですか?

+1

参照してください:http://stackoverflow.com/questions/27946595/how-to-manage-docs-of-huge-numbers-in-python – jedwards

+0

ありがとう、それは私に特別な情報を教えてくれました。幸いにも私はちょうど問題を発見した。私は自分の問題についてより良い検索をしようとします –

答えて

3

//整数分割のためにPython 3で//使用します。私はちょうどこれを見つけた