- ベストアンサー
二つの既約分数の和が整数のとき、分母は等しい ・・・なぜ?
ichiro-hotの回答
- ichiro-hot
- ベストアンサー率59% (82/138)
本当ならユークリッドの互除定理・合同式を使うのでしょうが・・・ (A/B)+(C/D)=m m;整数 B>0,D>0 …(1) と置いて見る。 簡単にするために 0<(A/B)<1,0<(C/D)<1 の条件をつけておきます。 B=A+R1(0<R1<Aの整数) ,D=C+R2(0<R2<Dの整数) ∴ A=B-R1 、C=D-R2 …(2) (1)より A・D+B・C=m・B・D これに(2)を代入し整理すると R1・D+R2・B=(2-m)・B・D …(3) (3)の両辺をDで割ると R1+{(R2・B)/D}=(2-m)・B R1,(2-m)・Bは整数だから{(R2・B)/D}も整数。 0<R2<Dの整数であるからBがDで割り切れる。 ∴B=k1・D (ただしk1≧1の整数) ・・・(4) 同様に(3)の両辺をBで割ると {(R1・D)/B}+R2=(2-m)・D R2,(2-m)・Dは整数だから{(R1・D)/B}も整数 0<R1<Aの整数だから,DはBで割り切れる。 ∴D=k2・B (ただしk2≧1の整数) ・・・(5) (4),(5)より B・D=k1・k2・B・D ∴K1・k2=1 k1≧1,k2≧1ならばk1=k2=1 よって B=D 拡張互除定理まで使うとかえって互いに素ということを示しにくい。 それで規約性を(2)の形で表しました。どうでしょうか?
関連するQ&A
- 再び分数教えてください。
●5/24と3/16に同じ整数をかけ、それぞれを整数にする一番小さい整数は ? 。 ●異なる自然数を分母とする3つの分数1/?,1/3, 1/?の輪は1です。 ●88/15をかけても、25/144でわっても整数になる分数の中で、最も小さいものは ? で、4番目に小さいものは ? です。 ●5が分母の分数で、1より大きく50より小さい分数(約分して整数になるものは除く)の和は ?。 ●0と1の間で分母が81の約分できない分数は ?個あります。 よろしくお願いします。
- ベストアンサー
- 数学・算数
- 分数の分母が連続した整数の積
分数の分母が連続した整数の積 算数で以下のような問題が出ました。 -------- 1÷(1×2)+1÷(2×3)……+1÷(99×100) を計算しなさい。 ヒント:全て通分して計算できたら、あなたは相当根気と計算力があります(笑) -------- また、その応用として、分母が3つの連続した整数の積の分数の計算の問題も出ました。 -------- 1÷(1×2×3)+1÷(2×3×4)……1÷(98×99×100) を計算しなさい。 -------- これらの問題は、どのように計算すればいいのでしょうか? (一つ目の問題は答えの法則性が少しつかめかけていますが、計算の方法の法則性はつかめていません) ご回答よろしくお願いします。
- ベストアンサー
- 数学・算数
- 既約分数の表示プログラム
(1)キーボードから,分子,分母に相当する整数2つを入力し,その既約分数を表示せよ。 (2)分母が1の時には,分子のみを表示する。 (3)分子と分母の符号が異なるときにのみ,-符号を表示する。 (4)分母がゼロの入力エラーに対しては、再入力するように促す。 (5)分子と分母の最大公約数も求めて表示する。 (6)また、正しく計算できる最大規約分数を示せ。 #include <stdio.h> int main(void) { int a,b,i=1,x,y,z; printf("分子=");/*分子の入力*/ scanf("%d",&a); printf("分母=");/*分母の入力*/ scanf("%d",&b); if(b==0) { printf("分母が0です。入力が誤っています。\n"); return 0; } if(b==1) { printf("既約分数は %d\n",a); return 0; } while((i<=a)&&(i<=b)) { if((a%i==0)&&(b%i==0)) { x=i;i=i+1; /*xを上書きしていく*/ } else { i=i+1; } } printf("分子と分母の最大公約数=%d より\n",x); y=a/x; z=b/x; printf("既約分数は %d/%d\n",y,z); return 0; } 大学の課題で出されたものです。(1)(2)(4)(5)はできたのですが、(3)と(6)の部分のやり方がいまいちよくわからなかったので質問しました。 どなたかご教授お願いできないでしょうか・・・。
- ベストアンサー
- C・C++・C#