DEVC++求两数最小公倍数

大家谁会用DEVC++做这道题目啊?
大家可要用递归啊~
给大家上题目
最小公倍数
题目描述
请写一个程序,输入是两个正整数,输出是他们的最小公倍数。
说明:最小公倍数英文叫做Least Common Multiple,简写LCM。
输入输出格式
输入格式
两个正整数,均不超过1000000000
输出格式
一个正整数
输入样例#1:
4 6
输出样例#1:
12
错误代码(容易TE Time Error 超时):

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long a,b;
    cin>>a>>b;
    for(unsigned long long i=1;;i++){
        if(i%a==0&&i%b==0){
            cout<<i;
            return 0;
        }
    }
    return 0;
}

#include<iostream>
using namespace std;

long long gcd(long long m,long long n)
{
    if (m < n)
        gcd(n, m);
    if (m%n)
        return gcd(n, m%n);
    return n;
}

int main()
{
    long long m, n;
    
    cout << "输入m和n:" << endl;
    cin >> m >> n;
    cout << "最大公约数为:" << gcd(m,n) << endl;
    cout << "最小公倍数为:" << m*n/gcd(m,n) << endl;
    return 0;
}

img


#include<iostream>
using namespace std;
long long gbs(long long n,long long m)
{
    if (m > n) gbs(m, n);
    else
    {
        if (n%m == 0) return m;
        else return gbs(m, n%m);
    }
}
int main()
{
    long long m, n, g, y;
    cout<<"输入m和n ";
    cin>>m>>n;
    g = gbs(n, m);    //g代表最大公约数
    y = m * n / g;       //y代表最小公倍数
    cout<<y;
    return 0;
}

#include<bits/stdc++.h>
using namespace std'
int gcd(int a,int b){
return a%b==0?b:gcd(b,a%b);
}
main(){
int a,b;
cin>>a>>b;
cout<<gcd(a,b)
}