求最小公倍数的三种方法以及对求最大公因数的补充 C语言从入门到入土(入门篇)(算法篇p4)

简介: 求最小公倍数的三种方法 求最大公因数的补充:

废话不多说,直接上代码。


最小公倍数的三种方法


//法一:暴力(定义)求解
//最小公倍数的本质是一个最小的能同时被两整数整除的自然数
int main()
{
  int m = 0;
  int n = 0;
  scanf("%d%d", &m, &n);
  int a = 0;
  a = ((m) > (n)) ? (m) : (n);
  while (1)
  {
    if ((a % m == 0) && (a % n == 0))
    {
      break;
    }
    a++;
  }
  printf("%d", a);
  return 0;
}
//法二:
int main()
{
  int m = 0;
  int n = 0;
  int i = 1;
  scanf("%d%d", &m, &n);     //当然这里也可以是
  while (((m * i) % n) != 0)   // m*i%n
  {
    i++;
  }
  printf("%d", m*i);  //注意这里
  return 0;
}
//法三:最大公因数求解
//如求 3 12  最小公倍数 就是  3*12/3(最大公因数),
//     3  5  最小公倍数 就是  3*5/1 。
int main()
{
  int m = 0;
  int n = 0;
  int c = 0;
  int a = 0;
  int b = 0;
  scanf("%d%d", &m, &n);
  a = m;
  b = n;
  while (c=a%b)
  {
    a = b;
    b = c;
  }
  //注意这里只有b才是最大公因数,这是辗转相除法规定的,
  //当然你也可以说是欧几里得法更帅不是嘛哈哈。
  printf("%d",m*n/b);
  return 0;
}

求最大公因数的补充:

//求最大公因数的两个补充,上面已经说到了辗转相除,
//这里就不过多赘述了。
//法一:更相减损法
//简单说:大的减小的,直到减数和差相等
int main()
{
  int m = 0;
  int n = 0;
  scanf("%d%d", &m, &n);
  while ((m - n) != 0)
  {
    if (m > n)
    {
      m=m - n;
    }
    else
    {
      n=n - m;
    }
  }
  printf("%d", m);//n也行
  return 0;
}
//法二:穷举法
//从两个数较小的数开始减,直到都能除尽。
int main()
{
  int m = 0;
  int n = 0;
  scanf("%d%d", &m, &n);
  int c = 0;
  c = ((m) < (n)) ? (m) : (n);
  for (c; c >= 1; c--)
  {
    if ((m % c == 0) && (n % c == 0))
    {
      printf("%d", c);
      break;
    }
  }
  return 0;
}

最后:感谢您的观看!

          感谢您的支持!

如果没有关注的话就来个关注吧!你的支持是作者写作的最大动力!

谢谢!!!

相关文章
|
8天前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
|
10月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
1032 6
|
5月前
|
机器学习/深度学习 存储 算法
18个常用的强化学习算法整理:从基础方法到高级模型的理论技术与代码实现
本文系统讲解从基本强化学习方法到高级技术(如PPO、A3C、PlaNet等)的实现原理与编码过程,旨在通过理论结合代码的方式,构建对强化学习算法的全面理解。
747 10
18个常用的强化学习算法整理:从基础方法到高级模型的理论技术与代码实现
|
6月前
|
机器学习/深度学习 算法 机器人
强化学习:时间差分(TD)(SARSA算法和Q-Learning算法)(看不懂算我输专栏)——手把手教你入门强化学习(六)
本文介绍了时间差分法(TD)中的两种经典算法:SARSA和Q-Learning。二者均为无模型强化学习方法,通过与环境交互估算动作价值函数。SARSA是On-Policy算法,采用ε-greedy策略进行动作选择和评估;而Q-Learning为Off-Policy算法,评估时选取下一状态中估值最大的动作。相比动态规划和蒙特卡洛方法,TD算法结合了自举更新与样本更新的优势,实现边行动边学习。文章通过生动的例子解释了两者的差异,并提供了伪代码帮助理解。
418 2
|
8月前
|
算法 C语言
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
本文档介绍了如何编写两个子函数,分别求任意两个整数的最大公约数和最小公倍数。内容涵盖循环控制与跳转语句的使用、最大公约数的求法(包括辗转相除法和更相减损术),以及基于最大公约数求最小公倍数的方法。通过示例代码和测试说明,帮助读者理解和实现相关算法。最终提供了完整的通关代码及测试结果,确保编程任务的成功完成。
307 15
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
|
8月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
1416 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
9月前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
301 7
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
8月前
|
存储 编译器 C语言
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
本文档介绍了C语言环境配置和编程任务,主要内容包括: - **C语言环境配置**:详细讲解了在Windows系统上配置C语言开发环境的步骤。 - **第1关:程序改错**:包含任务描述、相关知识(如头文件引用、基本语法规则)、编程要求、测试说明及通关代码。 - **第2关:scanf函数**:涉及`scanf`和`printf`函数的格式与使用方法,提供编程要求、测试说明及通关代码。 文档结构清晰,涵盖从环境搭建到具体编程任务的完整流程,适合初学者学习和实践。
168 4
|
8月前
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
221 1
|
10月前
|
传感器 人工智能 物联网
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发,以及面临的挑战和未来趋势,旨在帮助读者深入了解并掌握这些关键技术。
237 6