最小公倍数
来源:互联网 发布:java redis分布式锁 编辑:程序博客网 时间:2024/05/16 08:11
正整数a和b的最小公倍数是指a和b的所有公倍数中最小的那个公倍数,例如4和6的最小公倍数12,3和 9的最小公倍数为9。
最小公倍数的求解在最大公约数的基础上进行,当得到a和b的最大公约数d的时候,可以马上得到a和b的最小公倍数是ab/d。
怎么理解呢?a和b的最大公约数就是集合a和集合b的交集,而最小公倍数为集合a和集合b的并集。要得到并集,由于ab会使公因子多计算一次,因此需要除掉一次公因子。
由于ab在实际计算的时候可能出现溢出的情况,因此更恰当的写法是 a/b*d。由于d是a和b的最大公约数,因此a/d一定可以整除。
多点测试:
样例输入
22 3 53 4 6 12
样例输出
1512
程序:
#include <iostream>#include <cstdio>#include <cstdlib>#include <string>#include <cstring>#include <sstream>#include <cmath>#include <vector>#include <algorithm>using namespace std;int gcd(int a,int b){ return !b?a:gcd(b,a%b);}int lcm(int a,int b){ return a/gcd(a,b)*b;}int main(){ int n; cin>>n; for(int i=0;i<n;i++) { int m; cin>>m; int a,b; cin>>a; for(int j=0;j<m-1;j++) { cin>>b; a=lcm(a,b); } cout<<a<<endl; } return 0;}
阅读全文
0 0
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 最小公倍数
- 001 电脑蓝屏断电等导致虚拟机无法打开的解决方案
- java异常处理Throwable类
- C++基础(动态分配内存)2
- 浅谈高并发解决方案
- details与summary标签使用
- 最小公倍数
- 汇编跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
- 无人机平台--控制平台--组成设想
- Redis【入门】
- 使用复述,实现分布式锁及其优化
- 回文数
- 习题6.2(1)
- iOS开发-队列和同步异步执行的结果分析
- python matplotlib从文件中读取数据绘制折线图