zoukankan      html  css  js  c++  java
  • [算法]欧几里得算法(辗转相除法和更相减损法求最大公约数和最小公倍数)

    一.更相减损法

    代码(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 } 
  • 相关阅读:
    vim操作
    git命令
    Python笔记(二)
    python笔记
    gdb笔记 ---《Linux.C编程一站式学习》
    python笔记——dict和set
    echo $?
    FastDFS与Nginx环境配置
    Nginx依赖库安装
    mixin多继承包装过程
  • 原文地址:https://www.cnblogs.com/chasemeng/p/12831222.html
Copyright © 2011-2022 走看看