欢迎光临杨雨的个人博客站!

杨雨个人网站-杨雨个人博客-杨照佳

杨雨个人博客网站

关注互联网和搜索引擎的个人博客网站

首页 > WEB开发 > mysql教程 >

C语言计算两个数的最大公约数和最小公倍数

发布时间:2019-05-24  编辑:杨雨个人博客网站   点击:   

如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。最大公约数指两个或多个整数共有约数中最大的一个。而,最小公倍数是两个或多个整数公有的倍数中除0以外最小的那个公倍数。【视频教程推荐:C语言教程

C语言计算两个数的最大公约数和最小公倍数

计算两个数的最大公约数

根据约数的定义可知,某个数的所有约数必不大于这个数本身,几个自然数的最大公约数必不大于其中任何一个数。要求任意两个正整数的最大公约数即求出一个不大于其中两者中的任何一个,但又能同时整除两个整数的最大自然数。

算法思路:按照从大(两个整数中较小的数)到小(到最小的整数1)的顺序求出第一个能同时整除两个整数的自然数,即为所求。

代码示例:

#include<stdio.h>
int main()
{
    int m, n, temp, i;
    printf("请输入任意2个数:\n");
    scanf("%d%d", &m, &n);
    if(m<n)  /*比较大小,使得m中存储大数,n中存储小数*/
    { /*交换m和n的值*/
        temp=m;
        m=n;
        n=temp;
    }
    for(i=n; i>0; i--)  /*按照从大到小的顺序寻找满足条件的自然数*/
        if(m%i==0 && n%i==0)
        {/*输出满足条件的自然数并结束循环*/
            printf("%d 和 %d 的最大公约数为: %d\n", m, n, i);
            break;
        }
   
    return 0;
}

输出:

2.jpg

计算两个数的最小公倍数

思路:求任意两个正整数的最小公倍数,即求出一个最小的能同时被两整数整除的自然数。

代码示例:

#include<stdio.h>
int main()
{
    int m, n, temp, i;
    printf("请输入任意2个数:\n");
    scanf("%d%d", &m, &n);
    if(m<n)  /*比较大小,使得m中存储大数,n中存储小数*/
    { /*交换m和n的值*/
        temp=m;
        m=n;
        n=temp;
    }
    for(i=m; i>0; i++)  /*从大数开始寻找满足条件的自然数*/
        if(i%m==0 && i%n==0)
        {/*输出满足条件的自然数并结束循环*/
            printf("%d 和 %d 的最小公倍数为: %d\n", m, n, i);
            break;
        }
   
    return 0;
}

输出:

3.jpg

最小公倍数也可以使用最大公约数来求,公式:

● 最小公倍数=两数的乘积/最大公约(因)数

本文地址:http://itbyc.com/mysql/20187.html
转载请注明出处。
分享是一种快乐,也是一种美德:
博客首页 | WEB开发 | 网站运营 | CMS使用教程 滇ICP备14002061号-1