c++求最小公倍数.虽然有思路但是不知道怎么写成代码:定义两个整数m,n,最小公倍数就是am=bn,当m=bn时最小公倍数为m.当a,b两个都是偶数时,则不是公倍数,当a,b两数一个奇数一个偶数或两个奇数
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 15:13:12
![c++求最小公倍数.虽然有思路但是不知道怎么写成代码:定义两个整数m,n,最小公倍数就是am=bn,当m=bn时最小公倍数为m.当a,b两个都是偶数时,则不是公倍数,当a,b两数一个奇数一个偶数或两个奇数](/uploads/image/z/1118063-47-3.jpg?t=c%2B%2B%E6%B1%82%E6%9C%80%E5%B0%8F%E5%85%AC%E5%80%8D%E6%95%B0.%E8%99%BD%E7%84%B6%E6%9C%89%E6%80%9D%E8%B7%AF%E4%BD%86%E6%98%AF%E4%B8%8D%E7%9F%A5%E9%81%93%E6%80%8E%E4%B9%88%E5%86%99%E6%88%90%E4%BB%A3%E7%A0%81%EF%BC%9A%E5%AE%9A%E4%B9%89%E4%B8%A4%E4%B8%AA%E6%95%B4%E6%95%B0m%2Cn%2C%E6%9C%80%E5%B0%8F%E5%85%AC%E5%80%8D%E6%95%B0%E5%B0%B1%E6%98%AFam%3Dbn%2C%E5%BD%93m%3Dbn%E6%97%B6%E6%9C%80%E5%B0%8F%E5%85%AC%E5%80%8D%E6%95%B0%E4%B8%BAm.%E5%BD%93a%2Cb%E4%B8%A4%E4%B8%AA%E9%83%BD%E6%98%AF%E5%81%B6%E6%95%B0%E6%97%B6%2C%E5%88%99%E4%B8%8D%E6%98%AF%E5%85%AC%E5%80%8D%E6%95%B0%2C%E5%BD%93a%2Cb%E4%B8%A4%E6%95%B0%E4%B8%80%E4%B8%AA%E5%A5%87%E6%95%B0%E4%B8%80%E4%B8%AA%E5%81%B6%E6%95%B0%E6%88%96%E4%B8%A4%E4%B8%AA%E5%A5%87%E6%95%B0)
c++求最小公倍数.虽然有思路但是不知道怎么写成代码:定义两个整数m,n,最小公倍数就是am=bn,当m=bn时最小公倍数为m.当a,b两个都是偶数时,则不是公倍数,当a,b两数一个奇数一个偶数或两个奇数
c++求最小公倍数.
虽然有思路但是不知道怎么写成代码:定义两个整数m,n,最小公倍数就是am=bn,当m=bn时最小公倍数为m.当a,b两个都是偶数时,则不是公倍数,当a,b两数一个奇数一个偶数或两个奇数时则为最小公倍数.则输出最小公倍数.
请用我的思路来写一下代码,看一下我的思路能否实现?,如果可能,最后在提出一个更好的思路.
c++求最小公倍数.虽然有思路但是不知道怎么写成代码:定义两个整数m,n,最小公倍数就是am=bn,当m=bn时最小公倍数为m.当a,b两个都是偶数时,则不是公倍数,当a,b两数一个奇数一个偶数或两个奇数
按你的思路,应该是给定两个数a,b;判断是否属于 一个奇数一个偶数或两个奇数 的情况,不是除2,若是,需要检测两个数是否互质,不是就要除以他们的一个最小公因子,然后循环这样的操作就能实现你的思路,但耗费时间久,效率低,本质还是再求最大公因子.其实求最小公倍数可以采用 两个数的乘积/最大公约数的 方法.思路清晰又能做到同时得到最大公约数和最小公倍数.
#include <iostream>
using namespace std;
class lcm_gcd
{
int X;
int Y; //存取传入参数值
public:
lcm_gcd(int,int); //定义构造函数
int gcd(int,int); //定义最大公约数函数
void lcm(); //定义最小公倍数函数
};
lcm_gcd::lcm_gcd(int a,int b)
{
X=a;
Y=b;
}
int lcm_gcd::gcd(int a, int b) {
int min = a;
int max = b;
if (a > b) {
min = b;
max = a;
}
if (min == 0)
return max;
else
return gcd(min, max - min);
}
void lcm_gcd::lcm(){
int lcm=X*Y/gcd(X,Y);
cout<<"最小公倍数:"<<lcm<<endl;
}
void main()
{
int a,b;
cout<<"输入两个整数"<<endl;
cin>>a>>b;
lcm_gcd aa(a,b);
cout<<"最大公约数:"<<aa.gcd(a,b)<<endl;
aa.lcm();
}