poj1006生理周期(中国剩余定理)

简介:

/*
中国剩余定理可以描述为:
若某数x分别被d1、、…、dn除得的余数为r1、r2、…、rn,则可表示为下式:
x=R1r1+R2r2+…+Rnrn+RD
其中R1是d2、d3、…、dn的公倍数,而且被d1除,余数为1;(称为R1相对于d1的数论倒数)
R1 、
R2 、
…  、
Rn是d1、d2、…、dn-1的公倍数,而且被dn除,余数为1;
D是d1、d2、…、的最小公倍数;
R是任意整数(代表倍数),可根据实际需要决定;
且d1、、…、必须互质,以保证每个Ri(i=1,2,…,n)都能求得.
*/
#include<iostream>
using namespace std;
int main(){
   int a, b, c, d;
   int cnt=0;
   int x23=5544, x13=14421, x12=1288, x=21252;
   //x23为b,c的公倍数, 且x23%==1  x23为a,c的公倍数, 且x23%==1 x13为a,b的公倍数, 且x12%c==1
   //a, b, c 为余数 
   while(cin>>a>>b>>c>>d && a!=-1){
        int res=(a*x23 + b*x13 + c*x12) % x;
        res-=d;
        if(res<=0)
          res=(res+x-1)%x+1;
        cout<<"Case "<<++cnt<<": the next triple peak occurs in "<<res<<" days."<<endl;
   } 
   return 0;
}

目录
相关文章
|
4月前
acwing 789 数的范围
acwing 789 数的范围
34 4
|
4月前
acwing 141. 周期
acwing 141. 周期
20 0
|
9月前
春节每日一题~(自除数,除自身以外的数的乘积)
春节每日一题~(自除数,除自身以外的数的乘积)
42 1
|
算法
poj 1961 Period(kmp最短循环节)
给定一个长度为n的字符串s,求他每个前缀的最短循环节。换句话说,对于每个i(2<=i<=n),求一个最大的整数k(如果k存在),使得s的前i个字符可以组成的前缀是某个字符串重复k次得到的。输出所有存在K的i和对应的k。
62 0
|
机器学习/深度学习 编解码 算法
RSA大作业 实现了 1.加、减、乘、除、移位、幂取模的高精度算法 2.利用快速幂和牛顿迭代法加速取模运算 3.中国剩余定理 4.Miller Rabin检测
RSA大作业 实现了 1.加、减、乘、除、移位、幂取模的高精度算法 2.利用快速幂和牛顿迭代法加速取模运算 3.中国剩余定理 4.Miller Rabin检测
251 0
RSA大作业 实现了 1.加、减、乘、除、移位、幂取模的高精度算法 2.利用快速幂和牛顿迭代法加速取模运算 3.中国剩余定理 4.Miller Rabin检测
PTA 1091 N-自守数 (15 分)
如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”。
157 0
【八月】每日一题 - 1413. 逐步求和得到正数的最小值
【八月】每日一题 - 1413. 逐步求和得到正数的最小值
120 0
AcWing 806. 两个数的和
AcWing 806. 两个数的和
87 0
AcWing 806. 两个数的和
AcWing 713. 区间 2
AcWing 713. 区间 2
88 0
AcWing 713. 区间 2
POJ 2689 Prime Distance (埃氏筛 区间筛)
POJ 2689 Prime Distance (埃氏筛 区间筛)
127 0

热门文章

最新文章