我想尽快计算两个长整数的lcm,。
代表ex a=10^18 b=10^17
我正在为整数做lcm(a,b)=a*b/gcd(a,b),但是对于long,则会出现溢出。
最快的计算方法是什么??
发布于 2012-04-02 01:42:03
你总是会有溢出问题,特别是当你有大量的数据时。但是为了抵消这一点,你可以按照迈克尔的建议写a * (b/gcd(a,b))。由于gcd(a,b)是a和b的除数,所以不担心由于整数除法而导致的结果不准确。
发布于 2012-04-02 03:24:33
a*b <= c
// When will a*b overflow c?
a > c/b在您的例子中,c可以是LLONG_MAX。
https://stackoverflow.com/questions/9969973
复制相似问题