GCD

引数に指定した配列の最大公約数(Greatest Common Divisor)を求めます。

構文
  1. Double = GCD( arr )
引数
arr
最大公約数を求める数値を格納した配列
戻値
最大公約数

プログラム

////////////////////////////////////////////////// // 【引数】 // arr : 最大公約数を求める数値を格納した配列 // 【戻値】 // 最大公約数 ////////////////////////////////////////////////// FUNCTION GCD(arr[]) c = LENGTH(arr) rem = arr[c-1] MOD arr[c-2] IFB rem = 0 THEN IFB LENGTH(arr) = 2 THEN RESULT = arr[c-2] EXIT ENDIF RESIZE(arr, c-2) RESULT = GCD(arr) EXIT ENDIF arr[c-1] = arr[c-2] arr[c-2] = rem RESULT = GCD(arr) FEND

プログラム実行例

最大公約数を求めます

12と18の最大公約数を求めます。

DIM arr[] = 12, 18 PRINT GCD(arr) ////////////////////////////////////////////////// // 【引数】 // arr : 最大公約数を求める数値を格納した配列 // 【戻値】 // 最大公約数 ////////////////////////////////////////////////// FUNCTION GCD(arr[]) c = LENGTH(arr) rem = arr[c-1] MOD arr[c-2] IFB rem = 0 THEN IFB LENGTH(arr) = 2 THEN RESULT = arr[c-2] EXIT ENDIF RESIZE(arr, c-2) RESULT = GCD(arr) EXIT ENDIF arr[c-1] = arr[c-2] arr[c-2] = rem RESULT = GCD(arr) FEND
結果
6

この記事は役に立ちましたか?
役に立った 役に立たなかった