Problem Description

我知道部分同学最近在看中国剩余定理,就这个定理本身,还是比较简单的:

假设m1,m2,…,mk两两互素,则下面同余方程组:

x≡a1(mod m1)

x≡a2(mod m2)



x≡ak(mod mk)

在0<=<m1m2…mk内有唯一解。

记Mi=M/mi(1<=i<=k),因为(Mi,mi)=1,故有二个整数pi,qi满足Mipi+miqi=1,如果记ei=Mi/pi,那么会有:

ei≡0(mod mj),j!=i

ei≡1(mod mj),j=i

很显然,e1a1+e2a2+…+ekak就是方程组的一个解,这个解加减M的整数倍后就可以得到最小非负整数解。

这就是中国剩余定理及其求解过程。

现在有一个问题是这样的:

一个正整数N除以M1余(M1- a),除以M2余(M2-a), 除以M3余(M3-a),总之, 除以MI余(MI-a),其中(a<Mi<100i=1,2,…I),求满足条件的最小的数。

Input

输入数据包含多组测试实例,每个实例的第一行是两个整数I(1<I<10)和a,其中,I表示M的个数,a的含义如上所述,紧接着的一行是I个整数M1,M1...MI,I=0并且a=0结束输入,不处理。

Output

对于每个测试实例,请在一行内输出满足条件的最小的数。每个实例的输出占一行。

Sample Input

2 1

2 3

0 0

Sample Output

5

/******************************

这题太坑了,题目写的是  Chinese remainder theorem,却明明是最小公倍数。。。

分析:M%M1 = M1-a,M%M2 = M2-a,M%M3 = M3-a,……,M%Mi = Mi-a

即:(M+a) %M1 = 0,(M+a) %M2 = 0,(M+a) %M3 = 0,……,(M+a) %Mi = 0,

即: M+a  是M1,M2,M3,……,Mi的一个最小公倍数。。

好了,求最小公倍数吧!!

//  将hdu 1019 的代码稍微改了一下,注意要使用__int64,int不行。。。

****************************************/

Code:

#include <iostream>
#include<string.h>
using namespace std;
__int64 gcd(__int64 a,__int64 b)//求最大公约数
{
__int64 temp;
if(a<b)
{
temp = a;a = b;b = temp;
}
return (b==0)?a:gcd(b,a%b);
}
__int64 LCM(__int64 a,__int64 b)//求最小公倍数
{
return a/gcd(a,b)*b;
}
int main()
{
__int64 n,ans,x,a;
while(cin>>n>>a&&n&&a)
{
//memset(a,0,sizeof(a));
ans = 1;
cin>>x;
ans = LCM(ans,x);
for(int i = 0;i<n-1;i++)
{
cin>>x;
ans = LCM(ans,x);
}
ans-=a;
cout<<ans<<endl;
} return 0;
}

hdu 1788 Chinese remainder theorem again(最小公倍数)的更多相关文章

  1. HDU 1788 Chinese remainder theorem again

    题目链接 题意 : 中文题不详述. 思路 : 由N%Mi=(Mi-a)可得(N+a)%Mi=0;要取最小的N即找Mi的最小公倍数即可. #include <cstdio> #include ...

  2. HDU——1788 Chinese remainder theorem again

    再来一发水体,是为了照应上一发水题. 再次也特别说明一下,白书上的中国剩余定理的模板不靠谱. 老子刚刚用柏树上的模板交上去,简直wa出翔啊. 下面隆重推荐安叔版同余方程组的求解方法. 反正这个版本十分 ...

  3. HDU 1788 Chinese remainder theorem again 中国剩余定理

    题意: 给定n,AA 以下n个数m1,m2···mn 则有n条方程 res % m1 = m1-AA res % m2 = m2-AA 问res的最小值 直接上剩余定理,嘿嘿 #include< ...

  4. DHU 1788 Chinese remainder theorem again 中国剩余定理

    Chinese remainder theorem again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 ...

  5. Chinese remainder theorem again(中国剩余定理)

    C - Chinese remainder theorem again Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:% ...

  6. HDU1788 Chinese remainder theorem again【中国剩余定理】

    题目链接: pid=1788">http://acm.hdu.edu.cn/showproblem.php?pid=1788 题目大意: 题眼下边的描写叙述是多余的... 一个正整N除 ...

  7. 中国剩余定理(Chinese Remainder Theorem)

    我理解的中国剩余定理的含义是:给定一个数除以一系列互素的数${p_1}, \cdots ,{p_n}$的余数,那么这个数除以这组素数之积($N = {p_1} \times  \cdots  \tim ...

  8. 【数论】【中国剩余定理】【LCM】hdu1788 Chinese remainder theorem again

    根据题目容易得到N%Mi=Mi-a. 那么可得N%Mi+a=Mi. 两侧同时对Mi取余,可得(N+a)%Mi=0. 将N+a看成一个变量,就可以把原问题转化成求Mi的LCM,最后减去a即可. #inc ...

  9. Chinese remainder theorem

    https://en.wikipedia.org/wiki/Chinese_remainder_theorem http://planetmath.org/ChineseRemainderTheore ...

随机推荐

  1. cuda(1) 最大并发量

    Created on 2013-8-5URL : http://blog.sina.com.cn/s/blog_a502f1a30101mi6t.html@author: zhxfl转载请说明出处 c ...

  2. 开发者MAC电脑里的十八般兵器

    古人常以刀.枪.剑.戟.斧.钺.铲.叉.鞭.锏.锤.戈.镋.棍.槊.棒.矛.钯十八种兵器,样样精通,来形容一个人的武学技能get状态.在开发者的世界里,熟练掌握各种辅助工具,可以达到事半功倍,快速提高 ...

  3. div border-radius画圆

    不要指定border-width属性: <html> <style type="text/css"> div{ border-style: solid; b ...

  4. Java内存区域 - 深入Java虚拟机读后总结

    Java虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域有各自的用途,有各自的创建时间和销毁时间,有的区域随着虚拟机进程的启动而存在,有的区域则是依赖用户线程的启动 ...

  5. 【转】PyDev for Eclipse 简介

      转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-pydev/index.html PyDev for Eclipse 是一 ...

  6. ASP.NET- web.config配置用户出错页

    很简单,刚好用到,收藏 RemoteOnly是自定义用户错误,改成On,将所有错误都不让用户看见 每当用户访问错误页面时,会出现不友好的404错误,所以为了防止这种不友好,我们在web.config中 ...

  7. 20169210《Linux内核原理与分析》第九周作业

    第一部分:实验 首先还是网易云课堂的学习,这次的课程是可执行程序的装载. 预处理.编译和链接: 可执行程序是怎么来的 以c语言代码为例的话,经过预处理,编译成汇编代码,再汇编成目标码再链接可执行文件. ...

  8. 【转】Eclipse上安装GIT插件EGit及使用

    http://yufenfei.iteye.com/blog/1750124 一.Eclipse上安装GIT插件EGit Eclipse的版本eclipse-java-helios-SR2-win32 ...

  9. 无法打开SQL Server的连接

       机房收费系统重构版的登陆敲了好几天了,总算把登陆窗口敲完了,代码调试的差点儿相同了,问题就处在数据库了.    SQL Server配置管理里的SQL  Server服务都启动了,可是还是报这个 ...

  10. MVC中一般为什么用IQueryable而不是用IList

    IList(IList<T>)会立即在内存里创建持久数据,这就没有实现“延期执行(deferred execution)”,如果被加载的实体有关联实体(associations),此关联实 ...