[蓝桥省题](C2013_5) 公约数公倍数
5、(公约数公倍数)我们经常会用到求两个整数的最大公约数和最小公倍数的功能,下面的程序给出了一种算法,函数Myfunc接受两个正整数a,b经过运算后打印出:它们的最大公约数和最小公倍数,此时,调用Myfunc(15,20)
将会输出:5 60
程序如下:
void swap(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void myfunc(int a, int b)
{
int m, n, tr;
if (a < b) swap(&a, &b);
m = a; n = b; tr = a % b;
while (tr != 0)
{
a = b;
b = tr;
tr = a % b;
}
printf("%d\n", b);//最大公约数
printf("%d\n", ________________________________________________);//最小公倍数
}
请分析代码逻辑,并推测划线处的代码,通过网页提交
注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号、或说明文字!!!
题意:这题不难懂,就是让你根据代码逻辑,题目是让你根据最大公倍数求出最小公约数就好
思路:这题考的是数学,包括程序用到的也是:辗转相除法:
注意:这题有个坑:
答案为:printf("%d",(m*n)/b);
教学视频如下所示: