• ベストアンサー

離散数学の証明

離散数学の証明 次の問題の証明方法が分かりません。助けてください。 任意の整数m,nに対して次の(1)(2)を証明せよ。 (1)m,n≠0のとき、dがm,nの正の公約数であるならば、gcd(m/d,n/d)=gcd(m,n)/d (2)m,n≠0のとき、gcd(m/gcd(m,n),n/gcd(m,n))=1 ちなみにxが非負整数でm,nの最大公約数であるとき、gcd(m,n)=xと表されます。 よろしくお願いします。

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

  • ベストアンサー
  • banakona
  • ベストアンサー率45% (222/489)
回答No.2

ふつう、(2)は自明のことというか、=1だからこそ最大公約数という気がするんだけど・・・ということで、(2)の方が基本的なので、(2)から。 gcd(m,n)=xとするとき、m=ax、n=bxと置ける。 gcd(m/gcd(m,n),n/gcd(m,n))=gcd(a,b)で、これが1ではないとすると、 a,bが1ではない公約数を持つことになる(これをp(p>1)とする)。 すると、a=ep,b=fpと置け、m=epx、n=fpxとなって、pxもm,nの公約数。 ところが、p>1なのでpxはxよりも大きい。これはxがm、nの「最大」公約数であることと矛盾する。 よってgcd(m/gcd(m,n),n/gcd(m,n))=1 (1)は簡単でしょ。

exymezxy09
質問者

お礼

すごくヒントになり、助かりました! どうもありがとうございました。

その他の回答 (1)

  • B-juggler
  • ベストアンサー率30% (488/1596)
回答No.1

こっちが先でしたか。もう一つありましたね。 これも同じ。 素因数分解の形で m,n を丁寧に表すと、 何も考える必要なんてないよ。難しく考えてはいけない。 数学は、「物事を理論的に、順序だてて考える」という、ものですから 最初から難しく考える、というのは不合理だよ。 どこまで簡単に分かるか、それを書いてみるだけでも ずいぶんと違うからね。  この(2)は、互いに素 ということになるけど、 公約数は存在しないということだね。もう一問のほうで出てきているけれど、 互いに素って言うのはちょっと注意しながら扱わないといけないから、 「素因数分解」の形で出すこと! が先。 がんばってね。

exymezxy09
質問者

お礼

ご指摘ありがとうございます。 頑張って考えます。

関連するQ&A

  • 離散数学 証明

    離散数学 証明 分からなくて困っています。助けてください。 任意の整数m,nに対して、次の問いを証明せよ。 ・任意の非負整数kに対して、gcd(km,kn)=k・gcd(m,n) 証明の一番初めは gcd(km,kn)=dとする。(d∈Z) Zは整数 だと思います。それ以降どうしていけばいいのか分かりません。 わかる方は証明お願いします。 ちなみにxが非負整数でm,nの最大公約数ならば、x=gcd(m,n)と表されます。

  • 離散数学の証明問題

    離散数学の証明問題 合同でないことを≡×と表します。 Pを素数とし、a≡×0(mod p)とする。また、aの位数をdとする。 このとき、次のことを示せ。 (1)整数nに対して、a^n≡1(mod p)であるならば、かつそのときに限り、d|n (2)dはp-1の約数である。 (3)整数i,jに対してa^i≡a^j (mod p)であるならば、かつそのときに限り、i≡j(mod p) (1)はFermatの小定理を使うと思うのですが、いまいち解法が浮かびません。 (2)はFermatの小定理から自明に思えますが、厳密に証明しないといけないみたいです。 (3)は証明方法がまったく分かりません。 分かる方、証明お願いします。

  • 離散数学

    離散数学 示し方が全く分かりません。 分かる方お願いします。 1次不定方程式ax+by=cに対して、x=x',y=y'が特殊解のひとつであるとき、一般解は x=x'+(b/d)k y=y'-(a/d)k (kは整数) と表せることを示せ。 ただし、d=gcd(a,b)

  • gcdとlcmについての証明

    最大公約数gcdと最小公倍数lcmについての質問です。 正の整数n1,n2,......,nlについて gcd(n1,n2,n3,....,nl)=gcd(gcd(gcd(n1,n2),n3),...,nl) を示せ。 という問題なのですが、これはどのように証明すればよいのでしょうか?nが3つまでのは証明できたのですが、l個での証明の仕方が分かりません。 lcmについてもgcdの証明と同様にすれば示せるのでしょうか?

  • わかりません・・・。

    二つの自然数を引数として与えられて,それらの最大公約数を返す関数 int gcd(int m, int n) { /* … */ }を作成し,それを利用して入力された二つの正整数の最大公約数を求めるプログラムを作り方を教えてください。 ユークリッドの互除法を使い、関数を使う事が条件なのですが全然わかりません。 #include<stdio.h> int gcd(int m, int n) if(m>n) {m%n}            if(m%n==0) printf("最大公約数は%d",n); ←このあたりがわかりません else if (n%(m%n)) printf("最大公約数は%d",n%(m%n)); int main( void ) { int na, nb; puts(""二つの整数を入力してください。); printf("整数1:"); scanf("%d",na); printf("整数2:"); scanf("%d",nb); printf("最大公約数は%dです。\n",gcd(int m, int n)); return0; }

  • 離散数学演習問題

    離散数学演習問題 小さな添え字であることを表す記号を_を前につけて示しています。 全ての整数からなる集合をZとし、pを自然数とする。 任意のa∈Zに対して、[a]_p={b∈Z|b≡a(mod p)}とする。 また、N={1,2,・・・p}、Z/≡_p={[n]_p|n∈Z}とする。 このとき次の2問を証明してください。 よろしくお願いします。 (1)関数f:N_p→Z/≡_pをf(n)=[n-1]_pにより定めるとき、fは全単射である。 (2)Z/≡_P={[0]_p,[1]_p・・・,[p-1]_p}

  • 最大公約数と最小公倍数の関係

    ある二つの正の整数の最大公約数と最小公倍数をかけたものは、元の二つの数字をかけたものと等しいっていうことは言えますか? つまり、最大公約数をgcd、最小公倍数をlcmとあらわすことにして、 正の整数mとnについて、    gcd(m , n)・lcm(m , n)=m・n は成り立つかどうかを教えてください。 できればその理由(証明)も添えてください。 協力お願いします!!

  • 離散数学の証明

    離散数学の証明 束に関する証明問題なのですがいまいち分かりません。 以下の問題を解いて解説していただけるとありがたいです。 おそらく吸収則や冪等則を用いるのだと思うのですが・・・ Lを束とする。このとき、任意のa,b,c,d∈Lに対して、次の(1)~(3)が成り立つことを示せ。 (1)a≦bならば、a+c≦b+c、かつ、a・c≦b・c (2)c≦aならば、(a・b)+c≦a・(b+c) (3)a+(b・c)≦(a+b)・(a+c)

  • 数学 問題

    数学でいくつか質問があります。 1.任意の整数m、nに対して、以下のうちどれが真であるか (A)mのn+1乗≧mのn乗 (B)(m+1)のn乗≧mのn乗 (C)nx≧n(x+1) (D)nx≦n(x+1) (E)none 整数なので、負も含めるので、力技ではダメなのでしょうか。 2.2個のサイコロを3回投げた時、2個の目が同じであることが少なくとも1っ回である確率 3.3の3乗の3乗を5で割った余り これも力技の方が早いのでしょうか。 4.n>2である時、次のうちどれが最大か (A)nのn乗 (B)nの2n乗 (C)nの4n乗 (D)(4n)のn乗 (E)(2n)のn乗 私の答えは(D)なのですが。 よろしくお願い致します。

  • 離散数学

    nを非負の整数としたとき、この式が成り立つことを証明しなさい。 最後までわかりやすく説明をお願いします。