當前位置:編程學習大全網 - 編程軟體 - 求最大公約數c語言

求最大公約數c語言

c語言求最大公約數有輾轉相除法、更相減損術、窮舉法三種。

輾轉相除法。算法簡介:將兩個數a,b相除,如果余數c不等於0,就把b的值給a,c的值給b,直到c等於0,此時最大公約數就是b。

更相減損術。算法簡介:將兩個數中較大的數a減去較小的數b,如果差c等於0,那麽最大公約數為b,如果不等於0,則將b的值給a,c的值給b,繼續相減直到差等於0。

窮舉法。算法簡介:將兩個數a,b中較小的值賦給i,將a除以i,b也除以i,若兩者的余數同時為0時,此時的i就是兩者的最大公約數。若不等於0,則將i-1,繼續將a除以i,b除以i,直至余數同時為0。

最大公約數:

最大公因數,也稱最大公約數、最大公因子,指兩個或多個整數***有約數中最大的壹個。a,b的最大公約數記為(a,b),同樣的,a,b,c的最大公約數記為(a,b,c),多個整數的最大公約數也有同樣的記號。

早在公元前300年左右,歐幾裏得就在他的著作《幾何原本》中給出了高效的解法——輾轉相除法。輾轉相除法使用到的原理很聰明也很簡單,假設用f(x,y)表示x,y的最大公約數,取k=x/y,b?=x%y,則x=ky+?b,如果壹個數能夠同時整除x和y,則必能同時整除b和y。

而能夠同時整除b和y的數也必能同時整除x和y,即x和y的公約數與b和y的公約數是相同的,其最大公約數也是相同的,則有f(x,y)=f(y,x%y)(y>0),如此便可把原問題轉化為求兩個更小數的最大公約數,直到其中壹個數為0,剩下的另外壹個數就是兩者最大的公約數。

  • 上一篇:如何給這樣的照片添加背景文字?使用美國秀秀程序更詳細。
  • 下一篇:鍵盤上絕地求生的鍵在哪裏?
  • copyright 2024編程學習大全網