求多个数的最小公倍数
Posted XXrl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求多个数的最小公倍数相关的知识,希望对你有一定的参考价值。
http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?cid=4953&pid=2
参考:https://blog.csdn.net/yopilipala/article/details/65934939
main那里一直过不了,不知道为啥,然后就去搜了这个。即先求两个数的最小公倍数,再将这个数和后一个数求。
参考中求最大公约数用了递归的方法。//但只要是这个方法,不用特地用gcd函数,自定义函数都可以滴
【果然基础的经典题目都还没完全掌握呀】
1 #include<bits/stdc++.h> 2 using namespace std; 3 int yue(int a,int b) 4 { 5 if(a<b)swap(a,b); 6 int c=a%b; 7 while(c!=0) 8 { 9 a=b; 10 b=c; 11 c=a%b; 12 } 13 return b; 14 } 15 int main() 16 { 17 int t; 18 cin>>t; 19 while(t--) 20 { 21 int n; 22 cin>>n; 23 int k,cnt,a; 24 a = v = 1; 25 while(n--) 26 { 27 cin>>k;//一边输入一边计算,节省时间 28 cnt = a/yue(a,k)*k;//先除后乘防止溢出;根据[a,b]=a*b/(a,b) 29 a = cnt; 30 } 31 cout<<cnt<<endl; 32 } 33 }
1 long long gcd(long long a,long long k) 2 { 3 if(k == 0) 4 return a; 5 else 6 return gcd(k,a%k); 7 }
以上是关于求多个数的最小公倍数的主要内容,如果未能解决你的问题,请参考以下文章