http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?cid=4953&pid=2php
參考:https://blog.csdn.net/yopilipala/article/details/65934939c++
main那裏一直過不了,不知道爲啥,而後就去搜了這個。即先求兩個數的最小公倍數,再將這個數和後一個數求。ide
參考中求最大公約數用了遞歸的方法。//但只要是這個方法,不用特意用gcd函數,自定義函數均可以滴函數
【果真基礎的經典題目都還沒徹底掌握呀】spa
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 = cnt = 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 }