标签:
题意:给定两个整数G和L,找出两个整数a和b,使得二者的最大公约数为G,最小公倍数为L,如果有多组解,输出a<=b且a最小的解,若无解输出-1
根据L=(a*b)/G,由于G是a和b的约数,因此a和b可以写成G*x,G*y,则等式变为:L/G=x*y。若L%G!=0,则无解,否则取x为1即可。
1 #include <cstdio> 2 3 int main () 4 { 5 int T; 6 scanf("%d",&T); 7 while (T--) 8 { 9 int G,L; 10 scanf("%d%d",&G,&L); 11 if (L%G==0) 12 printf("%d %d\n",G,L); 13 else 14 printf("-1\n"); 15 } 16 return 0; 17 }
标签:
原文地址:http://www.cnblogs.com/ExcuseMe/p/5501922.html