优质解答
因为(a,b,c) 最小公倍数和((a,b),c)一样.多个数的最小公倍数计算可以通过计算前面两个数的最小公倍数,然后计算结果和后面一个数最小公倍数.而计算机比较快的算法求最小公倍数方法是:用辗转相除法求出两个数的最大公约数,让后除两个数的乘积,就是这就是两个数的最小公倍数.用这个思路,用python写了个程序求1,2,3,.100000的最小公倍数,程序跑了一分钟,答案有一个屏幕那么长.如果老师真能手工算出来,那也算逆天了.7个零原因也很简单,因为末尾出现零,只有2和5相乘.而2和5都是质数.1,2,3,.100000的最小公倍数=2^a * 3^b * 5^c . 所有质因数的幂次相乘.而a 和c必须满足,2^a附上代码def get_lcm(num1, num2):gcd = get_gcd(num1,num2)return num1*num2/gcddef get_gcd(num1,num2):if num1tmp = num2num2 = num1num1 = tmpmod = num1%num2if mod == 0:return num2else:return get_gcd(num2, mod)ret = 2;for i in xrange(3,100000):ret = get_lcm(ret, i)print ret
因为(a,b,c) 最小公倍数和((a,b),c)一样.多个数的最小公倍数计算可以通过计算前面两个数的最小公倍数,然后计算结果和后面一个数最小公倍数.而计算机比较快的算法求最小公倍数方法是:用辗转相除法求出两个数的最大公约数,让后除两个数的乘积,就是这就是两个数的最小公倍数.用这个思路,用python写了个程序求1,2,3,.100000的最小公倍数,程序跑了一分钟,答案有一个屏幕那么长.如果老师真能手工算出来,那也算逆天了.7个零原因也很简单,因为末尾出现零,只有2和5相乘.而2和5都是质数.1,2,3,.100000的最小公倍数=2^a * 3^b * 5^c . 所有质因数的幂次相乘.而a 和c必须满足,2^a附上代码def get_lcm(num1, num2):gcd = get_gcd(num1,num2)return num1*num2/gcddef get_gcd(num1,num2):if num1tmp = num2num2 = num1num1 = tmpmod = num1%num2if mod == 0:return num2else:return get_gcd(num2, mod)ret = 2;for i in xrange(3,100000):ret = get_lcm(ret, i)print ret