求最大公约数和最小公倍数

今天第一次写学习笔记:

自从昨天就开始做一求最大公约数和最小公倍数的题目:

接收用户从键盘上输入两个整数,求这两个整数的最大公约数和最小

公倍数,并输出

分析:1.从键盘上输入两个整数,可以调用java.io包,来从键盘上输入两个整数:

public static void main(String args[])throws IOException

{

BufferedReader br=new  BufferedReader(new InputStreamReader(System.in));

//定义两个整形,来存放从键盘上输入的两整数:

System.out.println("Enter Two Integers:");

int i=Integer.parseInt(br.readLine());

int j=Integer.parseInt(br.readLine());

2.然后就是解决如何求出最大公约数和最小公倍数的问题了:

要想求最小公倍数就必须先求出最大公约数,然后就很容易求最小公倍数了:

在编写方法是需要调用java.lang.Math包中的min()方法来求出两整数中最小的一个,以下是求x,y的公约数的方法:

int qiu()

{

int min1;

min1=Math.min(x,y);

int i;

outer:

for(i=2;i<=min1;i++) //注意此处一定是<=号

{

if(x%i==0 && y%i==0)

break outer;

}

if(i>min1)

return 0; //如果没有公约数返回0

else

return i; //如果有公约数返回公约数i

}

然后到主函数中去运算结果:

int temp; //中间的过度参数

do///使用while循环结构

{

Qiugongyue qgy;

qgy=new Qiugongyue(x,y);

temp=qgy.qiu();

if(temp!=0) //如果有公约数就对x,y进行变化

{

gy*=temp;

gb*=temp;

x=x/temp;

y=y/temp;

}

//min0=Math.min(x,y);

} while(temp!=0);//条件是此轮循环有公约数

gb=gb*x*y; //公倍数=公约数*x*y(此处的x和y是被处理过的)

 

 

此题目遇到不少的挫折,以致到今天才调试出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值