谭浩强C++课后练习题1——最大公约数和最小公倍数

谭浩强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;
}

运行测试结果如下:
在这里插入图片描述
第一次写博客,求关注,嘻嘻

发布了35 篇原创文章 · 获赞 35 · 访问量 640

猜你喜欢

转载自blog.csdn.net/weixin_45295612/article/details/105177230