求约倍数【C+版】
@输入任意两个数,输出这两个数的最大公约数和最小公倍数。
- 运行设备:Dev;
- 目的:输入任意两个数,输出这两个数的最大公约数和最小公倍数。
- 分析:#define MAX(a,b) (a,b)?a:b的运用,数据定义,键盘输入,运算体,键盘输出;
- 核心部件:#define MAX(a,b) (a,b)?a:b a = MAX(m,n); if(a % b != 0) ;a = b,b = c,c = a的比较法;lcm = n*m/b;
- 缺点:多了lcm = n%m/b一步,是为了记住lcm(least common mutiple)和gcd(greastest common divisor )两个词组。
- 注:如有什么想法和问题欢迎沟通交流!
具体代码如下:
#include<stdio.h>
#define MAX(a,b) (a>b)?a:b
#define MIN(a,b) (a<b)?a:b
main()
{
int a,b,m,n,gcd,lcm;
printf("\tPlease input two numbers:");
scanf("%d %d",&m,&n);
a = MAX(m,n);
b = MIN(m,n);
if(a % b != 0)
{
gcd = a % b;
a = b;
b = gcd;
}
lcm = m*n/b;
printf("\n\t%d和%d两个数的最大公约数为:%d,最小公倍数为:%d.\n",m,n,b,lcm);
return 0;
}
运行结果如下: