黑马程序员技术交流社区
标题:
输入两个正整数m和n,求其最大公约数和最小公倍数。
[打印本页]
作者:
我的专属
时间:
2014-4-3 14:13
标题:
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入两个正整数m和n,求其最大公约数和最小公倍数。
作者:
2528870651
时间:
2014-4-3 14:33
本帖最后由 2528870651 于 2014-4-3 14:40 编辑
<div class="blockcode"><blockquote>最大公约数:
public class CommonDivisor{
public static void main(String args[])
{
commonDivisor(24,32);
}
static int commonDivisor(int M, int N)
{
if(N<0||M<0)
{
System.out.println("ERROR!");
return -1;
}
if(N==0)
{
System.out.println("the biggest common divisor is :"+M);
return M;
}
return commonDivisor(N,M%N);
}
}
最小公倍数和最大公约数:
public class CandC
{
//下面的方法是求出最大公约数
public static int gcd(int m, int n)
{
while (true)
{
if ((m = m % n) == 0)
return n;
if ((n = n % m) == 0)
return m;
}
}
public static void main(String args[]) throws Exception
{
int a=3; int b=2;
int c = gcd(a, b);
System.out.println("最小公倍数:" + a * b / c + "\n最大公约数:" + c);
}
}
复制代码
可以吗???
作者:
threederek
时间:
2014-4-3 15:31
求两个非负正数m和n(要求m>n)的最大公约数可以使用辗转相除法。其算法描述为:
1)m除以n得到的余数为r(0<=r<n);
2)若r=0则算法结束,n为最大公约数。否则转3);
3)m=n,n=r,转1);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2