« Firebird日本語化プロジェクトWiki | メイン | Read-Write Lockパターン »

最大公約数を求めるユークリッドの互除法

最大公約数を求めるユークリッドの互除法は、
紀元前3世紀頃にはギリシャ人のあいだに知られていた。
驚きである。

//最大公約数を求める(ユークリッドの互除法)
//再帰版
int gcd(int m, int n)
{
  if (n == 0) return m;
  return gcd(n, m % n);
}
//非再帰版
int gcd(int m, int n)
{
  while (n > 0)
  {
    int r = m % n;
    m = n;
    n = r;
  }
  return m;
}

int result = gcd(954, 288); //=>18

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/892

コメント (1)

EGCD:

(1) X,Y in Z[Sqrt[3]];
(1 + 2*Sqrt[3])*X + (5 + 4*Sqrt[3])*Y=1
-------------------------------------------
X=____________
Y=____________


(2) x,y in Z[I] ;
(2 + 16*I)*x + (4 + 3*I)*y=1
-------------------------------------------
x=____________
y=____________

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年01月25日 13:45に投稿されたエントリーのページです。

ひとつ前の投稿は「Firebird日本語化プロジェクトWiki」です。

次の投稿は「Read-Write Lockパターン」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35