根据题目容易得到N%Mi=Mi-a。
那么可得N%Mi+a=Mi。
两侧同时对Mi取余,可得(N+a)%Mi=0。
将N+a看成一个变量,就可以把原问题转化成求Mi的LCM,最后减去a即可。
#include<cstdio> #include<algorithm> #include<iostream> using namespace std; typedef long long ll; int K; ll a; int main(){ ll x; while(1){ cin>>K>>a; if(K==0 && a==0){ break; } ll lcm=1; for(int i=1;i<=K;++i){ scanf("%I64d",&x); lcm=lcm/__gcd(lcm,x)*x; } printf("%I64d ",lcm-a); } return 0; }