C语言 如何求两整数的最大公约数与最小公倍数

下面是C语言如何求两整数的最大公约数与最小公倍数的完整攻略。

求最大公约数

理论知识

两个数的最大公约数是它们的公共因数中最大的一个数。求两个数的最大公约数也就是求这两个数的所有公因数中最大的一个数。

有很多算法可以用来求最大公约数,其中最常用的两种是辗转相减法和欧几里得算法(辗转相除法)。

代码示例

#include <stdio.h>
int GCD(int m, int n) {
    while(m != n) {
        if(m > n) {
            m = m - n;
        } else {
            n = n - m;
        }
    }
    return m;
}
int main() {
    int a, b;
    printf("请输入两个整数:\n");
    scanf("%d%d", &a, &b);
    printf("%d和%d的最大公约数为%d\n", a, b, GCD(a, b));
    return 0;
}

示例说明

假设 a = 12,b = 20。

我们就可以从 a - b 开始,得到 8 和 20。然后再从 20 - 8 得到 12 和 8。此时它们相等,因此得到了 4 和 8 的最大公约数,即 4。

求最小公倍数

理论知识

两个数的最小公倍数是它们的公共倍数中最小的一个数。求两个数的最小公倍数也就是求这两个数的所有公倍数中最小的一个数。

最小公倍数等于两个数的乘积除以它们的最大公约数。

代码示例

#include <stdio.h>
int GCD(int m, int n) {
    while(m != n) {
        if(m > n) {
            m = m - n;
        } else {
            n = n - m;
        }
    }
    return m;
}
int LCM(int m, int n) {
    return m * n / GCD(m, n);
}
int main() {
    int a, b;
    printf("请输入两个整数:\n");
    scanf("%d%d", &a, &b);
    printf("%d和%d的最小公倍数为%d\n", a, b, LCM(a, b));
    return 0;
}

示例说明

假设 a = 12,b = 20。

首先求得 a 和 b 的最大公约数 GCD(a, b) = 4。

然后通过最小公倍数公式 LCM(a, b) = a * b / GCD(a, b) 得到最小公倍数 LCM(a, b) = 60。

以上就是 C 语言如何求两整数的最大公约数与最小公倍数的详细攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言 如何求两整数的最大公约数与最小公倍数 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言实现恶作剧关机程序

    下面是详细讲解“C语言实现恶作剧关机程序”的完整攻略。 什么是恶作剧关机程序? 恶作剧关机程序是一种可以在计算机上运行的程序,其目的是伪装成正常的程序,让用户误以为它是一种有用的软件,但实际上它会在指定的时间内关闭计算机,从而给用户带来困扰和不满。 C语言实现恶作剧关机程序的步骤 以下是使用C语言编写恶作剧关机程序的步骤: 步骤一:打开文本编辑器 首先,需要…

    C 2023年5月23日
    00
  • 一篇文章了解c++中的new和delete

    一篇文章了解C++中的new和delete 什么是new和delete 在C++中,当我们需要动态地分配内存,即在程序运行时才能确定需要分配的内存大小时,我们可以使用new和delete关键字来完成内存的申请和释放操作。 new关键字用于在堆上分配内存,而delete关键字则用于释放该内存。 new的使用方法 new的语法格式为: 指针变量 = new 数据…

    C 2023年5月23日
    00
  • C语言实例讲解四大循环语句的使用

    C语言实例讲解四大循环语句的使用攻略 在C语言中,使用循环语句可以使程序中的某段代码被重复执行多次,这在程序编写中非常常见和重要。C语言中常用的循环语句有四种,分别是while、do while、for和嵌套循环。下面对这四种循环语句进行详细讲解并给出使用实例。 while循环 while循环是最简单的一种循环语句,其语法格式如下: while (条件判断)…

    C 2023年5月23日
    00
  • OpenCV基于距离变换和分水岭实现图像分割

    OpenCV基于距离变换和分水岭实现图像分割 1. 距离变换 距离变换是将一副灰度图像中的每个非零像素点赋予一个基于其与最近零像素距离的新值的操作。距离变换常被用于形态学图像处理中的对象筛选,但也可以被用于图像分割中。 在OpenCV中,可以通过cv2.distanceTransform函数实现距离变换。其中第一个参数是输入的二值化图像,第二个参数是距离类型…

    C 2023年5月22日
    00
  • 从汇编看c++中默认构造函数的使用分析

    请看以下完整攻略: 从汇编看C++中默认构造函数的使用分析 什么是汇编? 首先,我们需要了解什么是汇编。汇编语言是一种低级别的程序设计语言,它使用助记符(mnemonic)来代替二进制码的操作码。汇编语言是一种与硬件紧密相关的语言,它在一定程度上可以直接操作计算机硬件。 C++中的默认构造函数 在C++中,如果不为类定义构造函数,则会自动生成一个默认构造函数…

    C 2023年5月22日
    00
  • C++ vector的基本使用示例详解

    C++ vector的基本使用示例详解 什么是C++ vector? C++ vector 是STL(Standard Template Library)中的一个动态数组容器类型,能够灵活地存储和访问不同类型的数据。 如何使用C++ vector? 头文件引入 使用C++ vector,首先需要在代码中引入vector头文件: #include <ve…

    C 2023年5月22日
    00
  • C语言调试手段:锁定错误的实现方法

    当我们编写C语言程序时,难免会出现各种错误。这时候,调试就是必不可少的工作。但是,要想顺利地调试程序,我们需要掌握一些调试手段。下面,我将详细讲解“C语言调试手段:锁定错误的实现方法”的完整攻略。 一、使用调试器 调试器是一种通过逐行执行程序并观察程序运行状态来找出程序中的错误的工具。使用调试器进行调试的时候,我们可以逐行执行程序,并且在程序运行的过程中查看…

    C 2023年5月24日
    00
  • 浅析PHP中json_encode与json_decode的区别

    浅析PHP中json_encode与json_decode的区别 在PHP中,json_encode与json_decode这两个函数都是用于处理JSON格式数据的函数,它们的功能分别是将PHP数据编码为JSON数据,以及将JSON数据解码为PHP数据,但是在使用中还是有一些细微的差别,下面就来进行一下详细讲解。 json_encode函数 json_enc…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部