关于#C++#的问题,如何解决?

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;
}