アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (5件)

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;
といった具合でしょう
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/30 19:07

>3つの整数の最大公約数は分かりません。



3 つの整数の最大公約数とは何か。がわからないのか、
3 つの整数の最大公約数の求め方。がわからないのか、

補足にどうぞ。
(すべての回答者が後者だとして回答しているようなので念のために聞いてみました)
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/30 19:09

> 3つの整数の最大公約数は分かりません。



一度に求めようとしてもむずかしいです。
問題を分割して、あなたが今できている2数の最大公約数を求める
問題に落とし込んでください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/30 19:08

A,B,Cの最大公約数だったら、


AとBの最大公約数Dを求めて、
DとCの最大公約数を求めればいいです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/30 19:03

#こんな感じで動かないかな?


#試してないので動くかわかんないけど・・・

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が最大公約数に
    • good
    • 1
この回答へのお礼

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

お礼日時:2008/09/30 19:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!