求,代码
行星。的公转周期是指行星绕恒星转动一圈所需要的时间。达纳星系中一共有N颗行星。第i颗行星的公转周期为ai天。设这N颗行星在第X天排成一线,构成行星连珠。请问这n颗行星下一次在同一位置构成行星连珠是第几天?
输入第一行,一个整数n,行星数目
第二行,n个整数,表示恩颗行星的公转周期。
第3行一个整数X,表示行星连珠的现象在第x天出现。
输入:
5
3 4 2 6 5
3
输出
63
求,代码
行星。的公转周期是指行星绕恒星转动一圈所需要的时间。达纳星系中一共有N颗行星。第i颗行星的公转周期为ai天。设这N颗行星在第X天排成一线,构成行星连珠。请问这n颗行星下一次在同一位置构成行星连珠是第几天?
输入第一行,一个整数n,行星数目
第二行,n个整数,表示恩颗行星的公转周期。
第3行一个整数X,表示行星连珠的现象在第x天出现。
输入:
5
3 4 2 6 5
3
输出
63
只需要求这N个数的最小公倍数,也就是
int lcm(int x,int y) {//最小公倍数
return x*y/__gcd(x,y);
}
int main() {
//读入
int ans=lcm(a[1],a[2]);
for(int i=3;i<=n;i++) {
ans=lcm(ans,a[i]);
}
cout<<ans+x<<endl;
}