公共因子长度 java_计算两个数的最大公因子

?

给定两个正整数m和n,求它们的最大公因子,即能够同时整除m和n的最大正整数。

E1.【求余数】

以n除m并令r为所得余数。(我们将有0<=r

E2.【余数为零?】若r=0,算法结束,n即为答案。

E3.【减少】置m?---n,n?-r,并返回步骤E1

?

?

package com.javaeye.rsrt;

/**

* @description 求两个数的最大公因子

* @author nishiting

* @date 2010-9-15

*/

public class CommonFactor {

/**

* @param arags

*/

public static int result=0;

public static void main(String[] args) {

int a = 77;

int b = 21;

CommonFactor cf = new CommonFactor();

cal c = cf.new cal();

c.calculate(a, b);

System.out.println(a + "与" + b + "的最大公因子为:" + ((Integer)result).toString());

}

private class cal {

public cal() {

}

public void calculate(int a, int b) {

// 如果a比b小,那么a与b交换

if (a < b) {

int temp = a;

a = b;

b = temp;

}

if (a % b == 0) {

result = b;

} else {

int r = a % b;

a = b;

b = r;

calculate(a, b);

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值