通过素数分解找到最小公倍数

时间:2015-11-16 23:12:38

标签: c++

我无法弄清楚如何使用素数分解找到LCM。我设法找到两个数字的素因子并将它们放在数组中,但我不知道如何选择应该使用哪一个来计算LCM。

int lcm(int a, int b)
{
int arrA[100], arrB[100], x, y, z;
x=2;
y=0;
while(a>1)
{
    while(a%x==0)
    {
        a=a/x;
        arrA[y]=x;
        cout<<arrA[y]<<endl;
        y++;
    }
    x++;
}
x=2;
z=0;
    while(b>1)
{
    while(b%x==0)
    {
        b=b/x;
        arrB[z]=x;
        cout<<arrB[z]<<endl;
        z++;
    }
    x++;
}
}

1 个答案:

答案 0 :(得分:0)

您可以通过乘以所有常见因子来计算GCD 例如。如果a是2 * 2 * 2 * 3 * 5而b是2 * 2 * 5 * 5,则 常见因素是2 * 2 * 5,因此GCD是20.

两个数字a和b的LCM是(a*b)/gcd(a,b)