[算法]欧几里得算法(辗转相除法和更相减损法求最大公约数和最小公倍数)

一.更相减损法

代码(C++描述):

(局限性:x,y都为正数时才可用)

 1 /**更相减损法求最大公因数和最小公倍数*/ 
 2 #include<iostream>
 3 using namespace std;
 4 int main(){
 5     int x,y,n,m;
 6     cin>>x>>y;
 7     n=x,m=y;
 8     while(x!=y){
 9         x>y?x=x-y:y=y-x; 
10     }
11     cout<<"最大公因数为:"<<x<<endl;
12     cout<<"最小公倍数为:"<<(n/x)*(m/x)*x;
13     return 0;
14 } 

二.辗转相除法

代码(C++描述)

 1 /**辗转相除法求最大公因数和最小公倍数*/
 2 #include<iostream>
 3 using namespace std;
 4 int main(){
 5     int x,y,n,m;
 6     cin>>x>>y;
 7     n=x,m=y;
 8     int r;
 9     while(y!=0){
10         r=x%y;
11         x=y,y=r;
12     }
13     cout<<"最大公因数为:"<<x<<endl;
14     cout<<"最小公倍数为:"<<(n/x)*(m/x)*x;
15     return 0;
16 } 

 

原文链接: https://www.cnblogs.com/chasemeng/p/12831222.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    [算法]欧几里得算法(辗转相除法和更相减损法求最大公约数和最小公倍数)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/346504

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午3:56
下一篇 2023年3月2日 上午3:56

相关推荐