• ベストアンサー

3数の最大公約数

2つの整数の最大公約数は分かるのですが、3つの整数の最大公約数は分かりません。 ご教授宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

nGCD = gcd( arg1, arg2 ); nGCD = gcd( arg3, nGCD ); でしょう … ANo1氏の回答の中で forの検索順は逆のようです for ( i = x; i > 1; i-- ) {   xk = x % i;   yk = y % i;   zk = z % i;   if ( xk == 0 && yk == 0 && zk == 0 )     break; } kouyaku = i; といった具合でしょう

ta-bo3hog
質問者

お礼

分かりやすいプログラムをもっと噛み砕いてくださり感謝しております。 とても分かりやすい解説でした。

その他の回答 (4)

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.5

>3つの整数の最大公約数は分かりません。 3 つの整数の最大公約数とは何か。がわからないのか、 3 つの整数の最大公約数の求め方。がわからないのか、 補足にどうぞ。 (すべての回答者が後者だとして回答しているようなので念のために聞いてみました)

ta-bo3hog
質問者

お礼

後者の最大公約数の求め方でした。 わざわざご指摘ありがとうございました。申し訳なかったです。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

> 3つの整数の最大公約数は分かりません。 一度に求めようとしてもむずかしいです。 問題を分割して、あなたが今できている2数の最大公約数を求める 問題に落とし込んでください。

ta-bo3hog
質問者

お礼

ずっと一度で求めようとしていました。 分割したら解けました。ありがとうございました。

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

A,B,Cの最大公約数だったら、 AとBの最大公約数Dを求めて、 DとCの最大公約数を求めればいいです。

ta-bo3hog
質問者

お礼

なるほど、そうでした。 簡潔で分かりやすい回答ありがとうございます。

  • number44
  • ベストアンサー率27% (20/72)
回答No.1

#こんな感じで動かないかな? #試してないので動くかわかんないけど・・・ int x=10,y=20,z=30; int xk,yk,zk; int kouyaku=0; int i; #iの最大はx,y,zのどれでもいいが,3つのうち最小値がベスト for(i=1;i<=x;i++){ xk=x%i; yk=y%i; zk=z%i; if(xk==0 && yk==0 && zk==0){ kouyaku=i; } } #kouyakuが最大公約数に

ta-bo3hog
質問者

お礼

早い回答ありがとうございました。 ちょうど最小値も出そうと思っていたので非常に助かりました。

関連するQ&A