void gcd( int x, int y, int* p_lcm ,int* p_gcd)
最大公约数用欧几里得的方法计算。
欧几里德的方法是用一个大数反复除以小数的方法!
- 最小公倍数计算如下:=> lcm=(x*y))gcd
输入两个数:24 36
最小公约数(lcm):72
最大公约数(gcd):12
.。。。。。。
void gcd( int x, int y, int* p_lcm ,int* p_gcd)
最大公约数用欧几里得的方法计算。
欧几里德的方法是用一个大数反复除以小数的方法!
输入两个数:24 36
最小公约数(lcm):72
最大公约数(gcd):12
.。。。。。。
所谓“欧几里得的方法”,其实我国汉朝也有,记载在九章算术里,叫做“碾转相除法”。
#include <stdio.h>
void gcd(int x,int y,int*plcm,int*pgcd)
{
int x1=x;
int y1=y;
while (*pgcd = x % y){
x = y;
y = *pgcd;
}
*pgcd = y;
*plcm = x1 * y1 / *pgcd;
}
int main()
{
printf("输入两个数:");
int x, y;
scanf("%d%d", &x, &y);
int l, g;
gcd(x,y,&l,&g);
printf("最小公倍数(lcm):%d\n最大公约数(gcd):%d", l, g);
return 0;
}