<video id="nbppf"></video>
<video id="nbppf"><dl id="nbppf"><delect id="nbppf"></delect></dl></video>
<dl id="nbppf"></dl>
<dl id="nbppf"><delect id="nbppf"></delect></dl><dl id="nbppf"><delect id="nbppf"><meter id="nbppf"></meter></delect></dl>
<video id="nbppf"></video>
<dl id="nbppf"></dl><dl id="nbppf"></dl><address id="nbppf"><video id="nbppf"></video></address>
<dl id="nbppf"></dl>
<output id="nbppf"></output>
<output id="nbppf"><delect id="nbppf"></delect></output><dl id="nbppf"><delect id="nbppf"><meter id="nbppf"></meter></delect></dl>
<dl id="nbppf"></dl><dl id="nbppf"></dl>
<dl id="nbppf"></dl>
<video id="nbppf"></video>
<dl id="nbppf"></dl><dl id="nbppf"><delect id="nbppf"><meter id="nbppf"></meter></delect></dl>
<video id="nbppf"><output id="nbppf"><font id="nbppf"></font></output></video>
<output id="nbppf"><font id="nbppf"></font></output>

C語言程序擴展歐幾里得算法

發布時間:2021-03-24 20:21 作者:獨孤劍 閱讀:2128

給定兩個正整數m和n,我們計算它們的最大公因子d和兩個整數a和b,使得a*m+b*n=d

算法流程
E1.置a'=b=1;a=b'=0;c=m,d=n;

E2.計算d和r,使得c=q*d+r;

E3.若r==0;則退出,當前已有a*m+b*n=d;

E4;c=d;d=r;t=a';a'=a;a=t-q*a;t=b';b'=b;b=t-q*b;返回E2.

證明

對于已有的m和n,假設m>n;如果刨除變量a,b,a',b';算法與歐幾里得算法完全一樣,為計算最大公約數的算法.

最終要求的為a*m+b*n=d=GCD(m,n);如果改式子成立由歐幾里得算法可推出a'*n+b'*(m%n)=GCD(n,m%n);

因為GCD(m,n)=GCD(n,m%n);

所以a*m+b*n=a'*n+b'*(m%n)

=a'*n+b'*(m-(m/n)*n)

 =a'*n+b'*m-b'*(m/n)*n

=b'*m+(a'-b'*(m/n))*n


所以a=b';b=a'-b'*(m/n);

可以推出根據a‘、b'可以計算a、b。


代碼如下:

void EGCD(int m, int n)
{
    int a, a1, b, b1, c, d, q, r, t;
    a1 = b = 1,a = b1 = 0,c = m,d = n;
    while (1)
    {
        q = c / d,r = c % d;
        if (r == 0)
        {
            printf("(%d)*%d+(%d)*%d=%d\n", a, m, b, n, d);
            return;
        }
        c = d,d = r,t = a1,a1 = a,a = t - q * a,t = b1,b1 = b,b = t - q * b;
    }
}


微信打賞, 微信掃一掃

支付寶打賞, 支付寶掃一掃

如果文章對您有幫助,歡迎給作者打賞

作者最新文章
開發過程中解決360兼容模式瀏覽器的方法
云南象群向西南方向遷移,云南離群獨象距離象群約12公里
吉林做網站最低價格,吉林企業網站建設價格低至500元起
守象人直擊云南象群最新動向
網站影響百度蜘蛛抓取量的因素有哪些?為什么我的網站Baidu蜘蛛來的次數少?
企業名片
在線客服
天天干天天在线观看_国产精品无码天堂2021_日韩特黄美女自慰大全_欧美老妇乱色老头与老妇
<video id="nbppf"></video>
<video id="nbppf"><dl id="nbppf"><delect id="nbppf"></delect></dl></video>
<dl id="nbppf"></dl>
<dl id="nbppf"><delect id="nbppf"></delect></dl><dl id="nbppf"><delect id="nbppf"><meter id="nbppf"></meter></delect></dl>
<video id="nbppf"></video>
<dl id="nbppf"></dl><dl id="nbppf"></dl><address id="nbppf"><video id="nbppf"></video></address>
<dl id="nbppf"></dl>
<output id="nbppf"></output>
<output id="nbppf"><delect id="nbppf"></delect></output><dl id="nbppf"><delect id="nbppf"><meter id="nbppf"></meter></delect></dl>
<dl id="nbppf"></dl><dl id="nbppf"></dl>
<dl id="nbppf"></dl>
<video id="nbppf"></video>
<dl id="nbppf"></dl><dl id="nbppf"><delect id="nbppf"><meter id="nbppf"></meter></delect></dl>
<video id="nbppf"><output id="nbppf"><font id="nbppf"></font></output></video>
<output id="nbppf"><font id="nbppf"></font></output>