用c++编程:求两个正整数的最大公约数和最小公倍数

 我来答
百度网友3d3dcb3
2012-04-02 · 超过10用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:34.9万
展开全部
思路:先求最大公约数,再让两个数相乘,再除最大公约数即可。
#include<stdio.h>
int main()
{ int a,b,c,d,m,n,i;
scanf("%d %d",&m,&n); (输入两个数)
for(i=m;i>=1;i--)
{a=m%i;
b=n%i; (令m,n同时除以一个比他们小的数)
if(a==0&&b==0) (当m,n除以i都能没有余数时,被除数即为最大公约数)
{printf("the greatest common divisor is %d\n",i);break;}
else
continue;}
c=m/i*n;(m*n 中包含两个最大公约数,除以一个即可 )
printf("the least common multiple is %d\n",c);
return 0;}
匿名用户
2012-04-01
展开全部
#include <iostream>

int GCD(int x, int y);
int LCM(int x, int y, int z);

int main(void)
{
using namespace std;
cout << "请输入两个正整数:\n";
int x;
int y;
cout << "第一个正整数:";
cin >> x;
cout << "第二个正整数:";
cin >> y;
int G_CD = GCD(x, y); // 最大公约数
int L_CM = LCM(x, y, G_CD); // 最小公倍数 = 两数乘积除以最大公约数
cout << "最大公约数是:" << G_CD << endl;
cout << "最小公倍数是:" << L_CM << endl;
return 0;
}

int GCD(int x, int y)
{
int z = x % y;
while (z != 0)
{
x = y;
y = z;
z = x % y;
}
return y;
}

int LCM(int x, int y, int z)
{
return x * y / z;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友44062c2
2012-04-02 · TA获得超过152个赞
知道小有建树答主
回答量:91
采纳率:0%
帮助的人:101万
展开全部
/*求最大公约数--递归*/
int MaxDnum(int x,int y)
{
int z=x%y;
if(z)
{
MaxDnum(y,x%y);
}
else
return y;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式