【C语言】求最大公约数和最小公倍数

简介: 求最大公约数和最小公倍数

一. 什么是最大公约数和最小公倍数?

最大公约数:指能够整除多个整数的最大正整数。例如8和12的最大公约数为4。

最小公倍数:两个或多个整数最小的公共倍数。例如6和24的最小公倍数为24。

二者的关系

假设x和y的最大公约数是m,最小公倍数是n,则xy=mn。


二. 计算两个数的最大公约数和最小公倍数

最大公约数:(辗转相除法):令两个数为a和b(不论顺序)。若b不为0,更新a和b的值:把a/b的余数赋值给b,b原来的值赋给a。重复操作,直到b=0,此时a为二者最大公约数。


最小公倍数:利用二者的关系(最大公约数 * 最小公倍数=a * b),只需先求出最大公约数即可。


测试代码:

#include<stdio.h>
int gcd(int a, int b)//求最大公约数函数
{
  int tmp = 0;
  while (b)
  {
  tmp = a % b
  a = b;
  b = tmp;
  }
  return b;
}
int main()
{
  int num1 = 4;
  int num2 = 25;
  printf("最大公约数为:%d,最小公倍数为%d\n", gcd(num1, num2) , num1*num2/ gcd(num1, num2));
  return 0;
}


运行结果

20210115230018861.png

相关文章
|
6月前
|
人工智能 BI C语言
【C语言】求两个数的最大公约数和最小公倍数(极简代码版)
【C语言】求两个数的最大公约数和最小公倍数(极简代码版)
61 1
|
6月前
|
算法 C语言
C语言求最大公约数
C语言求最大公约数
|
5月前
|
存储 安全 C语言
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
|
5月前
|
C语言
C语言---最大公约数和最小公倍数的求法
C语言---最大公约数和最小公倍数的求法
|
5月前
|
算法 C语言
C语言——最大公因数和最小公倍数
C语言——最大公因数和最小公倍数
425 0
|
6月前
|
C语言
C语言每日一练——Day02:求最小公倍数(3种方法)
C语言每日一练——Day02:求最小公倍数(3种方法)
|
6月前
|
C语言
C语言每日一练——Day01:求最大公约数(三种方法)
C语言每日一练——Day01:求最大公约数(三种方法)
|
6月前
|
C语言
最大公约数和最小公倍数(c语言)
最大公约数和最小公倍数(c语言)
|
6月前
|
C语言
C语言之九九乘法表||素数||最小公倍数
C语言之九九乘法表||素数||最小公倍数
66 0
|
6月前
|
C语言
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
76 0