扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
得商2,余数是5813,再用23252做被除数,5813做除数,正好除尽得商数4。这样5813就是75569和52317的最大公约数。你要是用分解使因数的办法,肯定找不到。
目前创新互联建站已为1000+的企业提供了网站建设、域名、虚拟空间、网站托管、服务器托管、企业网站设计、建昌网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
先求出两个数的最大公约数,计算的方法有很多,最简单的一种就是采用辗转相除法,求得两个数的最大公约数以后,在计算原来的两数的乘积除以最大公约数,就是这两个数的最小公倍数。
r 的最大公约数。Java code 求公约数 public static int gcd(int p, int q){ if (q == 0) return p; int r = p % q; return gcd(q, r);} 公倍数就是两个数的积除以最大公约数。
所以在for循环里面,应该是max=m*n哦。同理最小公约数,可能是1,不过你那里大于0,没问题的。你的函数可以实现功能,只是如果只是要得到最小公约数和最大公倍数,不需要你那么麻烦吧,不是很明白你的需求额。
用辗转相除法可以求得最大公约数,而最小公约数等于m和n的积除以它们的最大公约数。
为什么要用枚举,用欧几里得算法不知道多好!枚举就 for(i = min(a,b)/2;i=2;i--) if(a%i == 0 && b%i == 0) break;这样去找咯。。
举例:输入两个正整数m和n,输出它们的最小公倍数和最大公约数。
先求出两个数的最大公约数,计算的方法有很多,最简单的一种就是采用辗转相除法,求得两个数的最大公约数以后,在计算原来的两数的乘积除以最大公约数,就是这两个数的最小公倍数。
//求最大公约数 publicstaticintcommonDivisor(intn,intm){ //辗转相除是用大的除以小的。
用辗转相除法可以求得最大公约数,而最小公约数等于m和n的积除以它们的最大公约数。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流