2021/11/27
#include <stdio.h>
int main(){
int a;
int b;
int temp;
int T;
int a_save;
int b_save;
scanf("%d",&T);
while(T--){
scanf("%d%d",&a,&b);
if(a<b){
temp=a;
a=b;
b=temp;
}
a_save=a;
b_save=b;
while(a%b!=0){
temp=a%b;
a=b;
b=temp;
}
printf("%d %d\n",b,a_save*b_save/b);
}
return 0;
}
直接复制了原答案,毕竟算法已经列在上一题里了。
顺便一提,函数getGcd使用的是辗转相除法,在算法专栏里有收录。
这是一个用C语言编写的程序,它通过辗转相除法计算两个整数的最大公约数。程序首先读取测试案例数量,然后对于每个案例,交换输入的较小数值和较大数值以确保a始终大于或等于b。接着,通过不断求余数并交换变量,直到余数为0,最后输出最大公约数及原始两数的乘积除以最大公约数的结果。
1077

被折叠的 条评论
为什么被折叠?



