用辗转相除法求两个数的最大公约数和最小公倍数(什么是辗转相除法,讲解)(C++语言)

来源:互联网 发布:c语言逻辑条件表达式 编辑:程序博客网 时间:2024/04/29 17:13

/*什么是辗转相除法呢?

比如求x,y的最大公约数,

先讨论(x%y)的余数b是否等于0,

如果是,

则y为最大公约数;

否则将y的值赋给x,

把b的值赋给y然后再继续对b讨论,

一直循环下去直到b=0时,

y值就是所求的最大公约数了。

其实现代码如下:*/

#include <iostream>

using namespace std;

int main()

{

    int a,b,num1,num2,temp;

    cout<<"请输入两个整数:"<<endl;

    cin>>num1>>num2;

    if (num1>num2)

    {

        temp=num1;

        num1=num2;

        num2=temp;

    }

    a=num1;

    b=num2;

    while (b!=0)//采用辗转相除法求最大公约数

    {

        temp=a%b;

        a=b;

        b=temp;

    }

    cout<<"最大公约数为:"<<a<<endl;

    cout<<"最小公倍数为:"<<num1*num2/a<<endl;

    system("pause");

    return 0;

}




0 0
原创粉丝点击