当前位置:网站首页>【Day_08 0426】求最小公倍数
【Day_08 0426】求最小公倍数
2022-08-01 17:40:00 【安河桥畔】
求最小公倍数
题目来源
牛客网:求最小公倍数
题目描述
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
数据范围:1≤a,b≤100000
输入描述
输入两个正整数A和B。
输出描述
输出A和B的最小公倍数。
示例1
输入
5 7
输出
35
示例2
输入
2 4
输出
4
思路分析
解法一
- 暴力求解
- 从1开始与两数中较小的数相乘,找到能整除较大数的第一个成绩,这个数便是最小公倍数
解法二
- 求最小公约数
- 根据最小公倍数的公式,最小公倍数=两数乘积/最大公约数
- 通过辗转相除法得到两数的最大公约数
辗转相除法:又叫欧几里得算法,用于计算两个非负整数a和b的最大公约数,设a、b两个数的最大公约数为n,则ka+b,b的公约数也为n。以除数和余数反复作除法运算,当余数为0时,当前的除数就是最大公约数。参考文章:辗转相除法求最大公约数
代码展示
解法一
#include<iostream>
using namespace std;
int main() {
int a, b;
while (cin >> a >> b)
{
int x = max(a, b);
int n = min(a, b);
long long mul;
for (int i = 1; i <= x; i++)
{
mul = n * i;
if (mul % x == 0)
{
break;
}
}
cout << mul << endl;
}
}
解法二
#include<iostream>
using namespace std;
int Gcd(int a, int b)
{
int temp = 0;
while (temp)
{
//无论a大还是b大,经过一轮循环后,a都比b大
//如果a比b大,那么取模得到的是一个较小的数字,把这个数赋给b后,a一定比b大
//如果b比a大,那么第一轮循环会将较大的数赋值给a,取模得到的数字便是a本身,相当于将两个数进行了交换
temp=a%b;
a = b;
b = temp;
}
return a;
}
int main() {
int a, b;
while (cin >> a >> b)
{
cout << a * b / Gcd(a, b);
}
}
边栏推荐
- opencv语法Mat类型总结
- 金仓数据库KingbaseES安全指南--6.9. Ident身份验证
- M1芯片电脑安装cerebro
- 数字化采购管理系统开发:精细化采购业务流程管理,赋能企业实现“阳光采购”
- B002 - Embedded Elderly Positioning Tracking Monitor
- 金仓数据库 MySQL 至 KingbaseES 迁移最佳实践(2. 概述)
- QT basic functions, signals, slots
- 关于2022年深圳市福田区支持高端服务业发展项目的申报通知
- 吴恩达机器学习课后习题——kmeans
- Isometric graph neural networks shine in drug discovery
猜你喜欢
随机推荐
频域分析实践介绍
缓存一致性MESI与内存屏障
金仓数据库 KingbaseES V8.3 至 V8.6 迁移最佳实践(4. V8.3 到 V8.6 数据库移植实战)
8月微软技术课程,欢迎参与
QT_QThread thread
加州大学|通过图抽象从不同的第三人称视频中进行逆强化学习
QT_QDialog 对话框
极化微波成像概述
C# LibUsbDotNet 在USB-CDC设备的上位机应用
SQL函数 TO_CHAR(三)
DBPack SQL Tracing 功能及数据加密功能详解
B001 - 基于STM32的智能生态鱼缸
块级元素、行内元素、行内块元素
使用设备树时对应的驱动编程
B002 - Embedded Elderly Positioning Tracking Monitor
不需要写代码,快速批量修改文件夹中图片的格式
md5sum源码 可多平台编译
OpenCV安装、QT、VS配置项目设置
Are online account opening commissions reliable? Is online account opening safe?
生物制药产业发展现状和趋势展望