HDU 1788 Chinese remainder theorem again

作者在 2008-05-07 11:06:20 发布以下内容

http://acm.hdu.edu.cn/showproblem.php?pid=1788

简单题  不过一开始还是被迷惑住了   以为是用中国剩余定理写的 

不过后来发现原来只要求所有数的最大公约数减去a就是结果了

#include<stdio.h>
__int64 gcd(__int64 a,__int64 b)
{
 if(b==0)return a;
 else return gcd(b,a%b);
}
int main()
{
 __int64 n,a,k1,k2,k[10],i;
 while(scanf("%I64d%I64d",&n,&a)!=EOF&&n&&a)
 {
  scanf("%I64d",&k[0]);
  k1=k[0];
  for(i=1;i<n;i++)
  {
   scanf("%I64d",&k[i]);
   k2=gcd(k1,k[i]);
   k1=k[i]*k1/k2;
//   printf("%I64d %I64d\n",k1,k2);
  }
  printf("%I64d\n",k1-a);
 }
 return 0;
}

ACM | 阅读 1676 次
文章评论,共0条
游客请输入验证码
最新评论