您的位置:首页 > 编程语言 > Java开发

[Java]练习题006: 求两个数的最大公约数和最小公倍数

2011-04-27 10:16 585 查看
【程序6】

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:利用辗除法。

import java.util.*;
public class Test6
{
public static void main(String[] args)
{
int m,n;
Scanner in = new Scanner(System.in);
System.out.println("请输入两个正整数:");
System.out.print("第一个数为:");
m= in.nextInt();
System.out.print("第二个数为:");
n = in.nextInt();

MaxDivisorMinMultiple mdmm = new MaxDivisorMinMultiple(m,n);

System.out.println("最大公约数为: "+mdmm.getMaxDivsior());
System.out.println("最小公倍数为: "+mdmm.getMinMultiple());
}
}
class MaxDivisorMinMultiple
{
private int m,n;
private int MaxDivsior, MinMultiple;
//构造函数
public MaxDivisorMinMultiple(int m, int n)
{
if(m>n)//输入的两个数中, 大数赋值给m, 小数赋值给n,
{
this.m = m;
this.n = n;
}
else
{
this.m = n;
this.n = m;
}

}
public int getMaxDivsior()
{
for(int i=n;i>=1;i--)
{
// 小n的数中第一个能被m和n整除的
if(n%i==0&&m%i==0)
{
MaxDivsior = i;
break;
}
}
return MaxDivsior;
}
public int getMinMultiple()
{
int i = 1;
while(true)
{
//n最小的倍数可以把m整除
if((n*i)%m==0)
{
MinMultiple = n*i;
break;
}
i++;
}
return MinMultiple;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: