输入m和n求其最大公约数和最小公倍数?

xiaoliang_c 2008-10-14 08:56:57
输入m和n求其最大公约数和最小公倍数?
把思路和程序写下来
...全文
338 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoliang_c 2008-10-14
  • 打赏
  • 举报
回复
是不是可以这样设公约数和公倍数为i
i同时能被m和n整除是公约数
i同时能整除m和n是公倍数
那程序怎样写我对循环很困惑!
frank_ll 2008-10-14
  • 打赏
  • 举报
回复
最小公倍数 = 最大公约数 * a * b
这里写错了
应该是
最小公倍数 = a * b/最大公约数

不好意思!
frank_ll 2008-10-14
  • 打赏
  • 举报
回复
a,b 最大公约数:互相取余, 设a > b
while(b != 0)
{
c = a % b;
a = b;
b = c;
}
return a;
a就是最大公约数

最小公倍数 = 最大公约数 * a * b
Dan_M 2008-10-14
  • 打赏
  • 举报
回复
求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM)


*问题分析与算法设计
手工方式求两个正整数的蝚大公约数的方法是用辗转相除法,在程序中可以模拟这种方式。


*程序说明与注释
#include<stdio.h>
int main()
{
int a,b,num1,num2,temp;
printf("Input a & b:");
scanf("%d%d",&num1,&num2);
if(num1>num2) /*找出两个数中的较大值*/
{
temp=num1; num1=num2; num2=temp; /*交换两个整数*/
}
a=num1; b=num2;
while(b!=0) /*采用辗转相除法求最大公约数*/
{
temp=a%b;
a=b;
b=temp;
}
printf("The GCD of %d and %d is: %d\n",num1,num2,a); /*输出最大公约数*/
printf("The LCM of them is: %d\n",num1*num2/a); /*输出最小公倍数*/
}


69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧