编写函数求两个整数的最大公约数和最小公倍数。

这篇博客介绍了一个用C++实现的算法,通过欧几里得算法来求解两个整数的最大公约数(GCD)和最小公倍数(LCM)。首先,定义了一个名为`Gdivisor`的函数,它通过不断交换被除数和除数直到余数为0来找出GCD。然后,利用GCD计算LCM,公式为`LCM = a * b / GCD(a, b)`。在主函数中,接收用户输入的两个整数并调用这些函数,输出结果。

实验思路:编写一个函数求两个整数的最大公约数,用较大的整数作被除数,用较小的数作除数,被除数除以除数的余数若为0,则直接输出除数,若不为0,则将除数的值赋值给除数,将余数的赋值给除数,得到新的被除数和除数后,若被除数除以除数的余数若为0,则直接输出除数,若不为0,执行上述操作,直至余数为0,输出除数,即为最大公约数;
而求最小公倍数,利用公式最小公倍数=被除数乘以除数除以最大公约数即可求得。

#include <iostream>
#include <cmath>
using namespace std;
int Gdivisor(int i,int j);
inline int Mmultiple(int i,int j,int k){
    return i * j / k;
}

int main(){
    int a,b,m,n;
    cout << "Please Enter two integers " << endl;
    cin >> a >> b;
    
    if(b > a)
      swap(a,b);
    
    m = Gdivisor(a,b);
    cout << "The greatest common divisor is " << m << endl;
    cout << "The least common multiple is " << Mmultiple(a,b,m) << endl;
    
    return 0;
}
int Gdivisor(int i,int j){
    int r;
    r = i % j;
    
    if(0 == r)
      return j;
    
    while(0 != r)
    {
        i = j;
        j = r;
        r = i % j;
    }
    
    return j;    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值