關於C語言求兩個數的最大公約數


一、求兩個數的最大公約數有兩種方法

1、求差法
對於傳入的兩個數,用較大的數減去較小的數,然后拿差與較小的數相比,若是相等,則這個數就是最大公約數。否則,對於差和較小的數再次重復上述的過程。
關於算法,則可利用while的循環來重復或者利用遞歸算法,這里采用遞歸來求解
 
 
 
 1 int division(int n,int m)
 2 {
 3     if(n<m)
 4         division(m,n); //交換n,m的值
 5     else if(n==m)
 6         return n;
 7     else
 8     {
 9         int temp=n;
10         n=m;
11         m=temp-n;
12         division(n,m); //重復上述過程
13     }
14 }    

 

2、求模法
求模法就是對於傳入的兩個數,用較大的數來對較小的數求模,要是模為零,則較大的數則為最大公約數。若是模不為零,則對於較小的數和模繼續上述的過程。
此過程與上述的求差法幾乎一模一樣,仍利用遞歸法.
 
 1 int division(int n,int m)
 2 {
 3     if(n<m)
 4         division(m,n); //交換m與n
 5     else if(m==0)
 6         return n;
 7     else
 8     {
 9         int temp=n;
10         n=m;
11         m=temp%n;
12         division(n,m); //重復上述過程
13     }
14 }       
 
對於最小公倍數,則是兩數相乘,然后除以最大公約數
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM