/* 题目标题:公约数公倍数 我们经常会用到求两个整数的最大公约数和最小公倍数的功能。 下面的程序给出了一种算法。 函数 myfunc 接受两个正整数a,b 经过运算后打印出 它们的最大公约数和最小公倍数。 此时,调用 myfunc(15,20) 将会输出: 5 60 // 交换数值 void swap(int *a,int *b) { int temp; 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", ____________________________________); // 最小公倍数 } 请分析代码逻辑,并推测划线处的代码,通过网页提交。 注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!! * */ #include <iostream> using namespace std; void swap(int* a, int* b) { int temp; 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", m * n / b); // 最小公倍数 } int main() { myfunc(15, 20); return 0; }
原文:https://www.cnblogs.com/zfq111/p/12764814.html