题目描述
小杨的班级里共有 𝑛n 名同学,每位同学都有各自的锻炼习惯。具体来说,第 𝑖i 位同学每隔 𝑎𝑖ai 天就会进行一次锻炼(也就是说,每次锻炼会在上一次锻炼的 𝑎𝑖ai 天后进行)。某一天,班上的 𝑛n 名同学恰好都来进行了锻炼。他们对此兴奋不已,想要计算出下一次所有同学都来锻炼,至少要过多少天。但他们不会计算,你能帮帮他们吗?
输入格式
第一行一个整数 𝑛n,表示同学的数量。
第二行 𝑛n 个用空格隔开的正整数,依次为 𝑎0,𝑎1,…,𝑎𝑛−1a0,a1,…,an−1。
输出格式
输出一个整数,表示下一次所有同学都来锻炼,至少要过多少天。
其他不写了
题目解析
这道题就是求n个数最小公倍数。
代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,a[55],ans=0;
int lcm(int a,int b){
return (a/__gcd(a,b))*b;
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
ans=a[1];
for(int i=1;i<=n;i++){
ans=lcm(ans,a[i]);
}
cout<<ans;
return 0;
}