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

1. 用小数除以大数,如果能整除,那小数就是最大公约数否则用余数除以刚才的除数。最小公倍数等于两个数的积除于最大公约数 

#include<iostream>
using namespace std;
int M(int x,int y){//定义一个函数M求最大值
	if(x<y){
		int i; 
        i=x;
		x=y;
		y=i;
	}
	while(y){ 
        int j;
		j=x%y;
		x=y;
		y=j;
	}
	return x;
}
int main(){
	int a,b;
	cout<<"请输入两个数:";
	cin>>a>>b;
	cout<<"最大公约数是:"<<M(a,b)<<endl;//调用M函数 
	cout<<"最大公倍数是:"<<a*b/M(a,b);
	return 0;
}

2.运行结果截图

  • 13
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 可以使用以下C++代码编写函数两个整数最大公约数和最小公倍数: ```c++ #include <iostream> using namespace std; int gcd(int a, int b) { if (a % b == 0) { return b; } else { return gcd(b, a % b); } } int lcm(int a, int b) { return a * b / gcd(a, b); } int main() { int a = 24; int b = 36; cout << "最大公约:" << gcd(a, b) << endl; cout << "最小公倍:" << lcm(a, b) << endl; return 0; } ``` 其中,gcd函数使用辗转相除法最大公约,lcm函数通过最大公约计算最小公倍。 运行该程序,可以得到以下输出: ``` 最大公约:12 最小公倍:72 ``` 这说明24和36的最大公约是12,最小公倍是72。 ### 回答2: 两个整数最大公约数和最小公倍数学学习的基本功,在编写程序时也可以使用函数实现。 最大公约是指能够同时整除这两个的最大的正整数,通常用gcd(x,y)表示;最小公倍是指这两个的公共倍中最小的一个数,通常用lcm(x,y)表示。 实现这两个函数可以使用辗转相除法和欧几里得算法。其中辗转相除法是一种递归算法,用于计算两个的最大公约;欧几里得算法是一种迭代算法,用于计算两个最大公约数和最小公倍数。 下面是使用Python语言实现这两个函数的代码: ```python # 辗转相除法最大公约 def gcd(x, y): if y == 0: return x else: return gcd(y, x % y) # 欧几里得算法最大公约数和最小公倍数 def lcm(x, y): z = gcd(x, y) return x * y // z a = 48 b = 60 print(gcd(a, b)) # 输出:12 print(lcm(a, b)) # 输出:240 ``` 以上代码中,使用了Python中的整除运算符//,它可以保留除法的整数部分,并将小部分舍去。在编写其他编程语言的代码时,需要根据不同的语言特性来实现相应的函数。 最后,需要注意的是,虽然使用函数可以方便地计算两个最大公约数和最小公倍数,但这并不代表我们可以不去掌握学知识。只有掌握了学原理,才能更好地理解和使用程序来解决实际问题。 ### 回答3: 在学中,两个的最大公约是指能够同时整除这两个的最大正整数。而最小公倍则是指能够同时被这两个整除的最小正整数。这两个学概念在编程中也是非常有用的,因此可以编写函数解这两个值。 最大公约的方法有很多种,常见的有辗转相除法和更相减损法。辗转相除法的基本思想是将相除取余,然后将除和余作为新的两个,一直重复这个步骤,直到余为0,此时的除即为的最大公约。更相减损法的基本思想是将中较大的减去较小的,然后将得到的差和较小的作为新的两个,一直重复这个步骤,直至相等,此时的即为最大公约最小公倍的方法则可以通过最大公约来得到,即最小公倍等于之积除以最大公约。 下面是一个用辗转相除法最大公约数和最小公倍数函数示例(Python语言): def gcd_lcm(x, y): # 辗转相除法最大公约 a = x b = y while b != 0: a, b = b, a % b gcd = a # 最小公倍等于之积除以最大公约 lcm = x * y // gcd return gcd, lcm 这样,我们就可以通过调用这个函数解任意两个整数最大公约数和最小公倍数了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值