リプタクのもう覚えられません
Google
Web サイト内
topmemo ▶ 最大公約数 算出サンプルVer_2.0

ActionScript

最大公約数 算出サンプルVer_2.0

ActionScriptで最大公約数を求めるサンプル。
Ver_1.0に対し、計算効率を向上を目的にユークリッドの互除法を用いたサンプル。

JavaScriptを有効にし、最新のFlashPlayerをインストールお願いしますGet Adobe Flash player


【ActionScript3.0 サンプルソース】

stop();

//変数
var num1:uint;//-----------------値小
var num2:uint;//-----------------値大
var yaku_max:uint;//-------------最大公約数

//入力できる文字の設定
tf1.restrict = "0-9";//値1
tf2.restrict = "0-9";//値2

//初期表示テキスト
tf1.text = String(num1);
tf2.text = String(num2);
tf3.text = String(yaku_max);

//テキストが入力される度に実施
tf1.addEventListener(Event.CHANGE,f_1);
tf2.addEventListener(Event.CHANGE,f_1);
function f_1(e:Event):void {

	//大小値の取得
	if (uint(tf1.text) <= uint(tf2.text)) {
		num1 = uint(tf1.text);
		num2 = uint(tf2.text);
	} else {
		num1 = uint(tf2.text);
		num2 = uint(tf1.text);
	}

	//最大公約数を求める式
	if (num1==0 || num2==0) {//-------------値0はありえない
		yaku_max = 0;
	} else {
		//ユークリッドの互除法
		do {
			if (num2%num1 == 0) {//---------大を小で割り切れるなら
				yaku_max = num1;//----------小を最大公約数に代入
			} else {
				yaku_max = num2%num1;//-----割った余りを最大公約数に仮代入
				num2 = num1;//--------------小を大に変更
				num1 = yaku_max;//----------余りを小に変更
			}
		} while (num2%num1 != 0);//---------割り切れないなら繰り返し
	}

	tf3.text = String(yaku_max);
}
last update 2009.6.13
参考・出典等
Riptac 最大公約数 算出サンプルVer_1.0
ユークリッドの互除法 - Wikipedia

▲page top

topmemogalleryblogtestaboutlinksmail
Copylight(C)2008-2009 Riptac. All Rights Reserved.