当前位置: 首页 > news >正文

C语言 ——— 输入两个正整数,求出最小公倍数

目录

何为最小公倍数

题目要求

代码实现

方法一:暴力求解法(不推荐)

方法二:递乘试摸法(推荐)


何为最小公倍数

最小公倍数是指两个或者多个正整数(除了0以外)的最小的公共倍数


题目要求

输入两个正整数;   如:输入:5    7

输入最小公倍数;   如:输出:35


代码实现

方法一:暴力求解法(不推荐)

#include<stdio.h>
int main()
{//输入int a = 0;int b = 0;scanf("%d %d", &a, &b);//计算最小公倍数int m = a > b ? a : b;while (1){if (m % a == 0 && m % b == 0)break;elsem++;}//输出printf("m = %d", m);return 0;
}

代码解析:

解析:int m = a > b ? a : b; 

求出 变量a、b 的较大值,存储到 变量m ,并将 变量m 假设为 变量a、b 的最小公倍数 

解析:while循环

如果 变量m 取模 变量a、b 的结果同时为 0 时,那么此时的 变量m 就是 变量a、b 的最小公倍数

如果取模结果不为 0 时,那么 变量m 就自增1,直到能同时取模为 0 为止

代码验证:

代码缺点: 

 当输入的两个正整数接近了整型能表示的最大范围时,那么这两个正整数的最小公倍数一定会超出整型能表示的最大范围


方法二:递乘试摸法(推荐)

#include<stdio.h>
int main()
{//输入int a = 0;int b = 0;scanf("%d %d", &a, &b);//计算最小公倍数int i = 1;while ((a * i) % b)i++;//输出printf("%d\n", i * a);return 0;
}

代码解析: 

解析:int i = 1;

解析:while ((a * i) % b)

举例说明:

35 / 5 = 7

35 / 7 = 5

创建一个 整型变量i ,用来递乘 变量a 或者 变量b

变量a 乘以 整型变量i 后,再取模 变量b,如果结果为 0 ,那就说明 a*i 就是 变量a、b的最小公倍数(变量b同样如此)

如果结果不为 0 时,递增 变量i,直到取模结果为0

代码验证:

http://www.lryc.cn/news/402664.html

相关文章:

  • Langchain 对pdf,word,txt等不同文件的加载解析
  • BL201分布式I/O耦合器连接Profinet网络
  • Pycharm 报错 Environment location directory is not empty 解
  • 【Android】Intent基础用法及作用
  • Web开发:ASP.NET CORE的后端小结(基础)
  • 侧开知识点合集2
  • ARM/Linux嵌入式面经(十六):蔚来嵌入式一二三面面经
  • Apache BookKeeper 一致性协议解析
  • Solana的账户模型
  • iPython与Matplotlib:数据可视化的秘籍
  • 做一只勤劳的小蜜蜂
  • 如何处理 PostgreSQL 中死锁的情况?
  • 新版本 idea 创建不了 spring boot 2 【没有jkd8选项】
  • linux系统和windows系统如何同步时间,服务器时间变动怎么同步
  • Mac M1安装配置Hadoop+Flink SQL环境
  • 【所谓生活】马太效应
  • 品牌进行电商数据采集的流程
  • 面试问题:React基本概念,和所遇到的CPU和IO问题
  • FOG Project 文件名命令注入漏洞复现(CVE-2024-39914)
  • JavaScript 表单
  • python程序设定定时任务
  • win10 查看 jks 的公钥
  • 蓝牙模块在智能体育设备中的创新应用
  • 智能家居和智能家电有什么区别?
  • SpringBoot3 + Vue3 学习 Day 1
  • 如何使用在线工具将手机相册中的图片转换为JPG格式
  • C#医学影像管理系统源码(VS2013)
  • Qt Creator 项目Console 项目踩坑日记
  • [MAUI 项目实战] 笔记App(一):程序设计
  • VisualRules-Web案例展示(一)