谭浩强C++课后练习题1——最大公约数和最小公倍数
题目描述:输入两个正整数m和n,求其最大公约数和最小公倍数。
算法思路:
用fun1函数返回最大公约数:把较大的一个数存储在m中,较小的一个数存储在n中,用辗转相除法循环得到最大公约数并返回。
用fun2函数返回最小公倍数:最小公倍数等于两个数的乘积除以两个数的最大公约数(调用fun1获取),返回最小公倍数。
#include<iostream>
using namespace std;
int fun1(int m, int n) {
if (m < n) {
int temp;
temp = m;
m = n;
n = temp;
}
int r;
while (n != 0) {
r = m % n;
m = n;
n = r;
}
return m;
}int fun2(int m, int n) {
return m * n / fun1(m, n);
}
int main() {
int m, n;
cout << "输入m,n:";
cin >> m >> n;
cout << "最大公约数:" << fun1(m, n) << endl;
cout << "最小公倍数:" << fun2(m, n) << endl;
return 0;
}
运行测试结果如下:
第一次写博客,求关注,嘻嘻