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

最大公約数を求めるユークリッドの互除法は、
紀元前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

コメント

  1. (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=____________

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください