首页 > 代码库 > HDU 1788

HDU 1788

必须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;}

  

HDU 1788