求最大公约数和最小公倍数

求最大公约数和最小公倍数
有错误的输出,求修改


#include <stdio.h>
int main()
{
    int a,b,i,gys=1,gbs=1;//gys(公约数),gbs(公倍数)
    scanf("%d,%d",&a,&b);
    for(i=2;i<=a&&i<=b;i++)
    {
        if(a%i==0&&b%i==0)
        { 
            a=a/i;
            b=b/i;
             gys=gys*i;
        }
            
    }
    gbs=gys*a*b;
    printf("gys=%d,gbs=%d",gys,gbs);
    return 0;
}
 
#include <stdio.h>
int main()
{
    int a,b,i,gys=1,gbs=1;//gys(公约数),gbs(公倍数)
    scanf("%d,%d",&a,&b);
    for(i=2;i<=a&&i<=b;i++)
    {
        if(a%i==0&&b%i==0)
        {
            gys=i;
        }
    }
    
    gbs=(a*b) / gys;
    printf("gys=%d,gbs=%d",gys,gbs);
    return 0;
}

我应该是记录过类似的文章,可以去主页搜搜看看