Javaプログラミング学習サイト ゆるゆるプログラミング

・Javaソースダウンロード(GCD_1.java)

与えられた2つの自然数の最大公約数を求めるJavaソースコードです。地道な方法で最大の公約数を見つける方法を使っています。最大公約数を求める方法にはユークリッド互除法という効率の良いアルゴリズムがありますが、いまだに効率の良いアルゴリズムが発見されていない計算もあるので、このような地道な方法が有効なことがあります。参考にしてください。

このソースについての記事はこちら「最大公約数その1」です。

GCD_1.javaをダウンロード

ダウンロードしたファイルはzip形式です。解凍して使ってください。Windowsの場合、ダウンロードしたzipファイルをマウスの右ボタンでクリックして表示されるポップアップメニューから「すべて展開(T)」で解凍できます。

public class GCD_1 {
	// aとbの最大公倍数を戻すメソッド
	// 値が取得できない場合0を戻す
	static int gcd( int a, int b )
	{
		// 両方の値が0以下なら0を戻す
		if ( ( 0 >= a ) && ( 0 >= b ) ) return 0;

		// 両方の値が同じならaを戻す
		if ( a == b ) return a;

		// aとbの小さい値をminに代入
		int min = Math.min( a, b );

		// 最大公約数の初期値を代入
		int ans = 1;

		// 最大公約数を求めるループ
		for ( int i = min; i >= 2; i -- ) {
			if ( 0 == ( a % i ) ) {
				// aはiで割り切れた
				if ( 0 == ( b % i ) ) {
					// bはiで割り切れた
					// iが最大公約数
					ans = i;
					break;
				}
			}
		}

		// 最大公約数を戻す
		return ans;
	}


	// メイン
	public static void main( String[] args ) {
		// 2つの変数を宣言
		int a, b;

		// 8と12の最大公約数
		a = 8;
		b = 12;
		System.out.println( a + "と" + b + "の最大公約数は、" + gcd( a, b ) );

		// 13と4の最大公約数
		a = 13;
		b = 4;
		System.out.println( a + "と" + b + "の最大公約数は、" + gcd( a, b ) );

		// 144と32の最大公約数
		a = 144;
		b = 32;
		System.out.println( a + "と" + b + "の最大公約数は、" + gcd( a, b ) );

		// 0と10の最大公約数
		a = 0;
		b = 10;
		System.out.println( a + "と" + b + "の最大公約数は、" + gcd( a, b ) );

		// 0と0の最大公約数
		a = 0;
		b = 0;
		System.out.println( a + "と" + b + "の最大公約数は、" + gcd( a, b ) );
	}
}

このソースについての記事はこちら「最大公約数その1」です。

 

■新着情報

2022.07.07 外部プログラムの実行 exeファイル実行
2022.07.06 完全数 6=1+2+3

■広告

 

 

 

 

Topへ