【茅塞顿开……这么简单的东西我居然刚懂】//中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称中国剩余定理。
//中国剩余定理的结论:
//令任意固定整数为M,当M/A余a,M/B余b,M/C余c,M/D余d,…,M/Z余z时,这里的A,B,C,D,…,Z为除数,除数为任意自然数([span]如果为0,没有任何意义,如果为1,在孙子定理中没有计算和探讨的价值,所以,不包括0和1)时;余数a,b,c,d,z为自然整数时。
//1、当命题正确时,在这些除数的最小公倍数内有解,有唯一的解,每一个最小公倍数内都有唯一的解;当命题错误时,在整个自然数范围内都无解。
//2、当M在两个或两个以上的除数的最小公倍数内时,这两个或两个以上的除数和余数可以定位M在最小公倍数内的具体位置,也就是M的大小。
//3、正确的命题,指没有矛盾的命题:分别除以A,B,C,D,…,Z不同的余数组合个数=A,B,C,D,…,Z的最小公倍数=不同的余数组合的循环周期.
//一个数被3除余1,被4除余2,被5除余4,这个数最小是几?
//题中3、4、5三个数两两互质。
//则〔4,5〕=20;〔3,5〕=15;〔3,4〕=12;〔3,4,5〕=60。
//为了使20被3除余1,用20×2=40;
//使15被4除余1,用15×3=45;
//使12被5除余1,用12×3=36。
//然后,40×1+45×2+36×4=274,
//因为,274>60,所以,274-60×4=34,就是所求的数。
//POJ 1006 Biorhythms
//Memory Time
//256K 94MS
#include<iostream>
using namespace std;
int main(void)
{
int p,e,i,d;
int time=1;
while(cin>>p>>e>>i>>d)
{
if(p==-1 && e==-1 && i==-1 && d==-1)
break;
int lcm=21252; // lcm(23,28,33)
int n=(5544*p+14421*e+1288*i-d+21252)%21252;
if(n==0)
n=21252;
cout<<"Case "<<time++<<": the next triple peak occurs in "<<n<<" days."<<endl;
}
return 0;
}