日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

辗转相除法(欧几里得算法)求 最大公约数与最小公倍数+推论与证明。

發布時間:2024/2/28 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 辗转相除法(欧几里得算法)求 最大公约数与最小公倍数+推论与证明。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先我們規定:0不參與公約數和公倍數的討論

先來討論最大公約數:

最大公約數求法:兩個數的所有公共質數相乘. 考慮三個問題。

  • 為什么是公共的:公共代表這個數可以被兩個數都整除
  • 為什么是質數:合數一定能分解出質數,若為公共合數,則代表并非最簡。
  • 為什么兩個數分別除以最大公因數后滿足互質:因為抽掉了公共質因子。
  • 由3得: 兩個數相乘=這兩個數的最大公約數*最小公倍數

    因為最大公約數兩個數的公共質數相乘, 但最小公倍數是兩個數相乘后除以公共質數
    (第三點),因此互補。

    證明:

    結論:
    1、最大公因數是兩個數的公共質數相乘。
    2、最小公倍數是兩個數相乘后除以公共質數
    3、兩個數相乘=最大公因數*最小公倍數。


    接下來是經典的“輾轉相除法(歐幾里得算法)”求最大公約數與最小公倍數的代碼。

    輾轉相除法基于如下原理:兩個整數的最大公約數等于其中較小的數和兩數的差的最大公約數。例如,252 和 105 的最大公約數是 21;因為 252 ? 105 = 21 × (12 ? 5) = 147 ,所以 147 和 105 的最大公約數也是 21。

    在這個過程中,較大的數縮小了,所以繼續進行同樣的計算可以不斷縮小這兩個數直至其中一個變成零。

    這時,所剩下的還沒有變成零的數就是兩數的最大公約數。


    #include<stdio.h> int main() {int x, y, z, m, n;printf("請輸入兩個數:");scanf("%d%d", &x, &y);m = x, n = y;while (y != 0) {z = x%y;x = y;y = z;}printf("最大公約數是: %d\n", x);printf("最小公倍數是: %d\n", m*n / x);return 0; }

    歡迎在評論區留言。 如果這篇文章對你產生了幫助,就請給博主一個贊吧!大家的點贊是我創作的最大動力!

    總結

    以上是生活随笔為你收集整理的辗转相除法(欧几里得算法)求 最大公约数与最小公倍数+推论与证明。的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。