UVA11388 GCD LCM
#include<bits/stdc++.h>
using namespace std;
/*最大公约数*/
inline int gcd(int a_1,int b_1)
{
if(b_1==0 && a_1==0)
{
return a_1;
}
return gcd(b_1,a_1%b_1);
}
/*最小公倍数*/
inline int lcm(int a_2, int b_2)
{
if(b_2==0 && a_2==0)
{
return a_1;
}
return a_2*b_2/gcd(a_2,b_2);
}
signed main()
{
register long long t,g,l,a=0,b=0;
ios::sync_with_stdio(0);//cin优化
ios::sync_with_stdio(false); //输入输出加速
cin>>t;
for(int i=1;i<=t;++i)
{
g=gcd(a,b);l=lcm(a,b);
cin>>g>>l;
if(l%g==0)
printf("%lld %lld\n",g,l);
else
puts("-1\n");
}
return 0;
}
死活做不对,谁能帮帮我!
p.s.请按我的代码修改,给出代码,谢谢
又是c与c++揉在一起
#include<bits/stdc++.h>
using namespace std;
/*最大公约数*/
inline int gcd(int a_1, int b_1)
{
int z = b_1;
while (a_1%b_1)
{
z = a_1 % b_1;
a_1 = b_1;
b_1 = z;
}
return z;
}
/*最小公倍数*/
inline int lcm(int a_2, int b_2)
{
return a_2 * b_2 / gcd(a_2, b_2);
}
signed main()
{
register long long t, g, l, a = 0, b = 0;
ios::sync_with_stdio(0);//cin优化
ios::sync_with_stdio(false); //输入输出加速
cin >> t;
for (int i = 1; i <= t; ++i)
{
g = gcd(a, b); l = lcm(a, b);
cin >> g >> l;
if (l%g == 0)
printf("%lld %lld\n", g, l);
else
puts("-1\n");
}
return 0;
}