求兩個數的最大公約數(java描述)

一種是枚舉法,將的到的數記錄下來
另一種是輾轉相相除法

package exercise_1;
import java.util.Scanner;

public class gongyuehsu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		int a = in.nextInt();
		int b = in.nextInt();
//		int gcd = 1;
//		for(int i=2;i<=a && i<=b; i++)
//		{
//			if(a%i == 0 && b%i == 0) 
//			{
//				gcd = i;
//			}
//		}
		int oa =a, ob =b;
		while(b!=0)
		{
			int r = a % b;
			System.out.println(a+"  "+b+"  "+  r);
			//觀察變化的過程
			a= b;
			b= r;
		}
		System.out.println(oa+"和"+ob+"的最大公約數是"+a);
	}

}
//上面枚舉法
//下面輾轉相除法或者叫歐幾米的法
//1、如果b= 0,計算結束,a就是最大公約數;
//2、否則,計算出a除以b 的餘數,讓a等於b,而b等於那個餘數
//3.回到第一步
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章