求最大公约数和最小公倍数的算法

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

理论部分(辗转相除法)

 

代码部分

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//求最大公约数
int gcd(int a, int b)
{
  int temp;
  while (b > 0)
  {
    temp = a % b;//创建一个变量存储a%b的余数
    a = b;//根据算法逻辑,用上一个式子的除数作下一个式子的被除数(所以a=b),上一个式子的余数作为下一个式子的除数(b=temp),直到余数为0;
    b = temp;
  }
  return a;//最后一定是返回除数
}
int lcm(int a, int b)
{
  return (a * b) / gcd(a, b);//利用公式   ab的乘积除以他们的最大公约数得到的结果为最小公倍数
}
int main()
{
  int a, b;
  printf("请输入两个正整数:\n");
  scanf("%d %d", &a, &b);
  int max = gcd(a, b);
  int min = lcm(a, b);
  printf("最大公约数为:%d\n", max);
  printf("最小公倍数为:%d\n", min);
  return 0;
}

暴力枚举法

/*枚举法:从1开始,直到i能够把a,b全部整除*/
int main()
{
  int a = 0;
  int b = 0;
  int i = 1;
  scanf("%d %d", &a, &b);
  while (i % a != 0 || i % b != 0)
  {
    i++;
  }
  printf("%d", i);
}
/*乘法枚举*/
int main()
{
    long long int a = 0;
    long long int b = 0;
    int i = 1;
    scanf("%d%d",&a,&b);
    while (a * i % b)
    {
      i++;
    }
    printf("%lld", a*i);
}

希望能对读者有所帮助!

目录
相关文章
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-2 算法训练 最大最小公倍数
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-2 算法训练 最大最小公倍数
17 0
|
3月前
|
算法 Python
最大公约数算法
最大公约数算法
|
3月前
|
算法 Python
最小公倍数算法
最小公倍数算法
|
10月前
|
算法
算法训练之最大最小公倍数 ALGO002
算法训练之最大最小公倍数 ALGO002
29 0
|
10月前
|
算法 Python
转:最大公约数算法很无聊吗?一个轻松方法(辗转相除法)3行代码搞定
最大公约数算法不是很无聊,计算最大公约数是数学中一个重要的概念,可以用于判断两个数是否互质、求分数的约分等,在很多领域都有广泛的应用。辗转相除法3行代码搞定。
48 0
|
11月前
|
算法 C++
每日算法系列【LeetCode 1363】形成三的最大倍数
每日算法系列【LeetCode 1363】形成三的最大倍数
算法--递归辗转相除法求最大公约数
算法--递归辗转相除法求最大公约数
|
算法
求最大公约数和最小公倍数的几种算法
求最大公约数和最小公倍数的几种算法
88 0
|
算法 C语言
【C语言初阶】求两个数的最大公约数,三种算法
给定两个整数,让你求这两个数的最大公约数 最大公约数顾名思义就是:这几个整数共有的约数中最大的一个。
119 0
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到&quot;hand.txt&quot;文件。