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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++语言最小公倍数怎么求,如何在C++中实现求两个整数的最大公约数和最小公倍数...

發布時間:2024/1/18 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++语言最小公倍数怎么求,如何在C++中实现求两个整数的最大公约数和最小公倍数... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最大公約數:

如果有一個自然數a能被自然數b整除,則稱a為b的倍數,b為a的約數。幾個自然數公有的約數,叫做這幾個自然數的公約數。公約數中最大的一個公約數,稱為這幾個自然數的最大公約數。

這個有幾種方法,下面是兩種不錯的方法:

(1)求差判定法.

如果兩個數相差不大,可以用大數減去小數,所得的差與小數的最大公約數就是原來兩個數的最大公約數.例如:求78和60的最大公約數.78-60=18,18和60的最大公約數是6,所以78和60的最大公約數是6.

如果兩個數相差較大,可以用大數減去小數的若干倍,一直減到差比小數小為止,差和小數的最大公約數就是原來兩數的最大公約數.例如:求92和16的最大公約數.92-16=76,76-16=60,60-16=44,44-16=28,28-16=12,12和16的最大公約數是4,所以92和16的最大公約數就是4.

(2)輾轉相除法.

當兩個數都較大時,采用輾轉相除法比較方便.其方法是:

以小數除大數,如果能整除,那么小數就是所求的最大公約數.否則就用余數來除剛才的除數;再用這新除法的余數去除剛才的余數.依此類推,直到一個除法能夠整除,這時作為除數的數就是所求的最大公約數.

例如:求4453和5767的最大公約數時,可作如下除法.

5767÷4453=1余1314

4453÷1314=3余511

1314÷511=2余292

511÷292=1余219

292÷219=1余73

219÷73=3

于是得知,5767和4453的最大公約數是73.

輾轉相除法適用比較廣,比短除法要好得多,它能保證求出任意兩個數的最大公約數.

(短除符號就是除號倒過來。短除就是在除法中寫除數的地方寫兩個數共有的質因數,然后落下兩個數被公有質因數整除的商,之后再除,以此類推,直到結果互質為止(兩兩互質)。

而在用短除計算多個數時,對其中任意兩個數存在的因數都要算出,其它沒有這個因數的數則原樣落下。直到剩下每兩個都是互質關系。

求最大公約數便乘一邊,求最小公倍數便乘一半。

此處介紹短除法與C++實現并無關系,這里只是作為延伸知識簡單介紹一下,實際上我們小學時候學習的正是這種方法

)。

以上是理論知識的介紹,下面貼出求最大公約數的C++程序代碼:

遞歸方法:

#include

using namespace std;

int MaxY(int a,int b)

{

int min, max;

max=a>b?a:b;

min=a

if(max%min==0)

return min;

else

return MaxY(min,max%min);

}

int main()

{

int a,b;

cout<

cin>>a>>b;

cout<

return 0;

}

或者非遞歸方法:

#include

using namespace std;

int MaxY(int a,int b)

{

int min, max;

int r;

max=a>b?a:b;

min=a

if(max%min==0)

return min;

while(max%min!=0)

{

r=max%min;

max=min;

min=r;

}

return min;

}

int main()

{

int a,b;

cout<

cin>>a>>b;

cout<

return 0;

}

最小公倍數:

借助最大公約數求最小公倍數

步驟:

一、利用輾除法或其它方法求得最大公約數

二、 最小公倍數等于兩數之積除以最大公約數。

舉例:12和8的最大公約數為4

12×8/4=24

兩數的最小公倍數是24。

根據上面的已經給出的最大公約數的C++程序代碼只要稍作修改便可變為求最小公倍數的C++程序代碼。

求最小公倍數的C++程序代碼如下:

#include

using namespace std;

int MinY(int a,int b)

{

int min, max;

int r;

max=a>b?a:b;

min=a

if(max%min==0)

return max;

while(max%min!=0)

{

r=max%min;

max=min;

min=r;

}

return a*b/min;

}

int main()

{

int a,b;

cout<

cin>>a>>b;

cout<

return 0;

}

這里給出的是非遞歸方法,遞歸方法也一樣可以根據上面最大公約數求法將程序代碼稍作修改即可。

(若你覺得本文很好,請頂一下

,謝謝啦。

)

總結

以上是生活随笔為你收集整理的c++语言最小公倍数怎么求,如何在C++中实现求两个整数的最大公约数和最小公倍数...的全部內容,希望文章能夠幫你解決所遇到的問題。

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