关于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