hdu 1788 Chinese remainder theorem again 多个数的最小公倍数

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1788

说明: 题目很水 提到一个定理,求多个数的最小公倍数转化为求两个数的最小公倍数方法。 然后就是  a=b(mod m1)  a=b(mod m2)  等价于a=b(mod [m1,m2] )

#include<iostream>
using namespace std;
typedef long long inta;

int gcd(int a,int b)
{
  if(b==0)
  return a;
  else return gcd(b,a%b);

}
int main()
{
   int k,a;
   while(cin>>k>>a)
   {
      if(k==0&&a==0)  break;
      inta ans=1;
      int temp;
      for(int i=0;i<k;i++)
       {
           cin>>temp;
           ans=ans/gcd(ans,temp)*temp;

       }
       cout<<ans-a<<endl;
   }


}



posted @ 2013-07-10 04:46  814jingqi  阅读(114)  评论(0编辑  收藏  举报