c语言最大公约数和最小公倍数是多少,c语言最大公约数和最小公倍数是多少

发布时间:2023-01-08

本文目录一览:

  1. C语言最大公约数和最小公倍数
  2. c语言编程,求两个数的最大公约数和最小公倍数
  3. c语言求最大公约数和最小公倍数
  4. c语言如何求最大公约数和最小公倍数
  5. c语言最大公约数最小公倍数
  6. C语言最大公约数与最小公倍

C语言最大公约数和最小公倍数

教你一个规律,两个数最小公倍数与最大公约数的乘积等于这两个数本身,只要求出最大公约数,最小公倍数就出来了。

c语言编程,求两个数的最大公约数和最小公倍数

这样写:

#include
void main()
{
    int m, n, i, r, temp;
    printf("请输入第一个数的值:");
    scanf("%d", m);
    printf("请输入第二个数的值:");
    scanf("%d", n);
    if (n > m)
    {
        temp = m;
        m = n;
        n = temp;
    }
    i = n;
    while (i % m != 0)
    {
        i = i + n;
    }
    printf("最小公倍数是:%d\n", i);
    r = m % n;
    while (r != 0)
    {
        m = n;
        n = r;
        r = m % n;
    }
    printf("最大公约数是:%d\n", n);
}

c语言求最大公约数和最小公倍数

c语言求最大公约数和最小公倍数。
求最小公倍数算法:
最小公倍数 = 两整数的乘积 ÷ 最大公约数
求最大公约数算法:
(1) 辗转相除法
有两整数 a 和 b:

  • ① a % b 得余数 c
  • ② 若 c = 0,则 b 即为两数的最大公约数
  • ③ 若 c ≠ 0,则 a = b,b = c,再回去执行①
    例如求 27 和 15 的最大公约数过程为:
    27 ÷ 15 余 12
    15 ÷ 12 余 3
    12 ÷ 3 余 0
    因此,3 即为最大公约数。

c语言如何求最大公约数和最小公倍数

#include <stdio.h>
int main()
{
    int a, b, c, m, t;
    printf("请输入两个数:\n");
    scanf("%d%d", &a, &b);
    if (a < b)
    {
        t = a;
        a = b;
        b = t;
    }
    m = a * b;
    c = a % b;
    while (c != 0)
    {
        a = b;
        b = c;
        c = a % b;
    }
    printf("最大公约数是:\n%d\n", b);
    printf("最小公倍数是:\n%d\n", m / b);
}

扩展资料

算法思想

利用格式输入语句将输入的两个数分别赋给 ab,然后判断 ab 的关系,如果 a 小于 b,则利用中间变量 t 将其互换。
再利用辗转相除法求出最大公约数,进而求出最小公倍数。最后用格式输出语句将其输出。 #include <stdio.h> 是在程序编译之前要处理的内容,称为编译预处理命令。编译预处理命令还有很多,它们都以“#”开头,并且不用分号结尾,所以是 C 语言的程序语句。

c语言最大公约数最小公倍数

最大公约数 C 语言编程的常用思路是:按照从大(两个整数中较小的数)到小(到最小的整数 1)的顺序求出第一个能同时整除两个整数的自然数,即为所求。 两个数的最大公约数有可能是其中的小数,所以在按从大到小顺序找寻最大公约数时,循环变量 i 的初值从小数 n 开始依次递减,去寻找第一个能同时整除两整数的自然数,并将其输出。 需要注意的是,虽然判定条件是 i > 0,但在找到第一个满足条件的 i 值后,循环没必要继续下去,如,25 和 15,最大公约数是 5,对于后面的 4、3、2、1 没必要再去执行,但此时判定条件仍然成立,要结束循环只能借助 break 语句。

具体代码实现:

#include <stdio.h>
int main()
{
    int m, n, temp, i;
    printf("Input m 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("The GCD of %d and %d is:%d\n", m, n, i);
            break;
        }
    return 0;
}

C语言最大公约数与最小公倍

void fun(int m, int n, int *p, int *q)
{
    int k = m < n ? m : n;
    while (m % k != 0 || n % k != 0) k--;
    *p = k;
    *q = m / k * n;
}

主函数自己写一下。p 是最大公约数指针,q 是最小公倍数指针。