最大公约数和最小公倍数(c语言)

简介: 最大公约数和最小公倍数(c语言)

今天我们来讲一下,最大公约数和最小公倍数,首先我们先来讲一下他们的概念:

最大公约数:指两个或多个整数共有约数中最大的一个。

最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。

我们先不用代码来计算最大公约数和最小公倍数:

1.辗转相除法

#include<stdio.h>
int main()
{
  int n, m;
  scanf("%d %d", &n, &m);
  int temp_n = n;//定义2个临时的变量
  int temp_m = m;
 
  if(temp_n >= temp_m){
  while (m!= 0) 
  {
    int temp = n % m;
    n = m;
    m = temp;
  }
  printf("最大公约数是%d\n", n);
//最小公倍数=两个数的乘积/最大公约数
  printf("最小公倍数是%d\n", (temp_n*temp_m) / n);
  }
  else if (temp_n < temp_m)
  {
    while (n!=0)
    {
      int temp = m %n;
      m = n;
      n = temp;
    }
printf("最大公约数是%d\n", m);
printf("最小公倍数是%d\n", (temp_n * temp_m) / m);
  }
  
 
}

2.相减法

最大数-最小数=0(其中最小数不变,除非调换位置,如下)

例如:15 和20

(20,15)-->(5,15)-->调转位置(必须最大数-最小数)-->(15,5)-->(10,5)-->(5,5)-------->0:5

这个5就是最大公约数

最小公倍数=两个数的乘积/最大公约数

#include<stdio.h>
//辗转相减法
int main()
{
  int n, m;
  scanf("%d %d", &n, &m);
  int temp_n = n;//定义2个临时的变量
  int temp_m = m;
  //求最大公约数
  while (temp_n!=temp_m) //如果相等,那随便其中一个都可以作为最大公约数
  {
    if (temp_n > temp_m)
    {
      temp_n = temp_n - temp_m;
    }
    else {
      temp_m = temp_m - temp_n;
    }
  }
  int max_yue = temp_n;
  //求最小公倍数
  int min_bei = (n * m) / max_yue;
  printf("最大公约数是%d\n", max_yue);
  printf("最小公倍数是%d\n", min_bei);
 
}

❤️结语:


本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!


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