#include<stdio.h> int main () { int n; scanf("%d",&n); while(n--) { int i,j; scanf("%d %d",&i,&j); int m=i,k=j; while(i!=j) { if(i>j) { i=i-j; } else { j=j-i; } } printf("%d %d\n",i,m*k/i);//i*j==最大公约数*最小公倍数 } return 0; }
//理解一下更相减损法 #include<stdio.h> int main() { int a,b,t,n; int x,y; scanf("%d",&n); while(n--){ scanf("%d %d",&a,&b); x=a,y=b; while(x!=y){ if(x<y) t=x,x=y,y=t; x-=y; } printf("%d %d\n",x,(a*b)/x); } return 0; }
注册一个 南阳理工学院OJ 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 南阳理工学院OJ 通用账户