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 } 
  • 相关阅读:
    对Java课程的感想
    OO第二阶段总结
    OO第一作业周期(前四周)总结
    实验7 流类库和输入输出
    实验6 类的继承和多态
    实验5 类和对象3
    实验4 类与对象2
    实验3 类和对象
    实验2
    实验1
  • 原文地址:https://www.cnblogs.com/chasemeng/p/12831222.html
Copyright © 2011-2022 走看看