?
给定两个正整数m和n,求它们的最大公因子,即能够同时整除m和n的最大正整数。
E1.【求余数】 以n除m并令r为所得余数。(我们将有0<=r<n)
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);
			}
		}
	}
}
  
                    
                 相关文章
                            相关文章