题意:
输入两个整数G,L,找出两个正整数a,b使得gcd(a ,b)=G,lcm(a ,b)=L,如果有多组解,输出最小的a的那组,如果没解,输出-1。
思路:
比较简单,如果L%G!=0那么就没解,否则既然要输出最小的a,那么就直接输出G,L就行了,a=G的时候最小,同时b=L的话可以保证最小公倍数是L。
#include<stdio.h>
int main ()
{
long long a ,b ,t;
scanf("%lld" ,&t);
while(t--)
{
scanf("%lld %lld" ,&a ,&b);
if(b % a)
{
printf("-1\n");
continue;
}
printf("%lld %lld\n" ,a ,b);
}
return 0;
}
输入两个整数G,L,找出两个正整数a,b使得gcd(a ,b)=G,lcm(a ,b)=L,如果有多组解,输出最小的a的那组,如果没解,输出-1。
思路:
比较简单,如果L%G!=0那么就没解,否则既然要输出最小的a,那么就直接输出G,L就行了,a=G的时候最小,同时b=L的话可以保证最小公倍数是L。
#include<stdio.h>
int main ()
{
long long a ,b ,t;
scanf("%lld" ,&t);
while(t--)
{
scanf("%lld %lld" ,&a ,&b);
if(b % a)
{
printf("-1\n");
continue;
}
printf("%lld %lld\n" ,a ,b);
}
return 0;
}