求最小公倍数的三种方法以及对求最大公因数的补充 C语言从入门到入土(入门篇)(算法篇p4)

本文阅读 2 分钟
首页 代码,C/C#/C++ 正文

目录

求最小公倍数的三种方法

求最大公因数的补充:

谁都不能阻挡你成为更优秀的人。

废话不多说,直接上代码。

求最小公倍数的三种方法

//法一:暴力(定义)求解
//最小公倍数的本质是一个最小的能同时被两整数整除的自然数
int main()
{
    int m = 0;
    int n = 0;
    scanf("%d%d", &m, &n);
    int a = 0;

    a = ((m) > (n)) ? (m) : (n);

    while (1)
    {
        if ((a % m == 0) && (a % n == 0))
        {
            break;
        }
        a++;
    }
    printf("%d", a);
    return 0;
}
//法二:

int main()
{
    int m = 0;
    int n = 0;
    int i = 1;
    scanf("%d%d", &m, &n);         //当然这里也可以是
    while (((m * i) % n) != 0)   // m*i%n
    {
        i++;
    }
    printf("%d", m*i);  //注意这里
    return 0;
}
//法三:最大公因数求解
//如求 3 12  最小公倍数 就是  3*12/3(最大公因数),
//     3  5  最小公倍数 就是  3*5/1 。

int main()
{
    int m = 0;
    int n = 0;
    int c = 0;
    int a = 0;
    int b = 0;
    scanf("%d%d", &m, &n);
    a = m;
    b = n;
    while (c=a%b)
    {
        a = b;
        b = c;
    }
    //注意这里只有b才是最大公因数,这是辗转相除法规定的,
    //当然你也可以说是欧几里得法更帅不是嘛哈哈。
    printf("%d",m*n/b);
    return 0;
}

求最大公因数的补充:

//求最大公因数的两个补充,上面已经说到了辗转相除,
//这里就不过多赘述了。
//法一:更相减损法
//简单说:大的减小的,直到减数和差相等
int main()
{
    int m = 0;
    int n = 0;
    scanf("%d%d", &m, &n);
    
    while ((m - n) != 0)
    {
        if (m > n)
        {
            m=m - n;
        }
        else
        {
            n=n - m;
        }
    }
    printf("%d", m);//n也行
    return 0;
}
//法二:穷举法
//从两个数较小的数开始减,直到都能除尽。
int main()
{
    int m = 0;
    int n = 0;
    scanf("%d%d", &m, &n);
    int c = 0;

    c = ((m) < (n)) ? (m) : (n);
    for (c; c >= 1; c--)
    {
        if ((m % c == 0) && (n % c == 0))
        {
            printf("%d", c);
            break;
        }

    }
    return 0;
}

最后:感谢您的观看!

           感谢您的支持!

如果没有关注的话就来个关注吧!你的支持是作者写作的最大动力!

谢谢!!!

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/weixin_62700590/article/details/121617961
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复