必须MARK下:任何时候都要保持清醒头脑,不要被题目绕了。。
其实就是求最小公倍数。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
__int64 v[20];
__int64 gcd(__int64 a,__int64 b){
if(b==0) return a;
return gcd(b,a%b);
}
int main(){
int k,a;
while(scanf("%d%d",&k,&a)!=EOF){
if(k==0&&a==0) break;
for(int i=0;i<k;i++)
scanf("%I64d",&v[i]);
__int64 ans=v[0];
for(int i=1;i<k;i++){
ans=ans*v[i]/gcd(ans,v[i]);
}
printf("%I64d\n",ans-(__int64)a);
}
return 0;
}