中国剩余定理
若一个数除m1余p1,除m2余p2……,除mn余pn (m1,m2……,mn互质)
则求 k1使k1=m2*……*mn的倍数且除m1余1
……
则这个数为(k1*p1+k2*p2+……kn*pn) mod (m1*m2*……*mn)
Program P1005;
var
a,b,c,d,i,a1,a2,a3,ans:longint;
begin
i:=1;
a1:=28*33;
a2:=23*33;
a3:=23*28;
while (a1 mod 23<>1) do inc(a1,28*33);
while (a2 mod 28<>1) do inc(a2,23*33);
while (a3 mod 33<>1) do inc(a3,23*28);
while (true) do
begin
read(a,b,c,d);
if (a=-1) and (b=-1) and (c=-1) and (d=-1) then break;
ans:=(a1*a+a2*b+a3*c+21252-d) mod 21252;
if ans=0 then ans:=21252;
writeln('Case ',i,': the next triple peak occurs in ',ans,' days.');
inc(i);
end;
end.
本文通过一个具体的示例介绍了如何使用中国剩余定理解决数学问题。该定理适用于一组同余方程,其中模数两两互质的情况。通过编程实现,找到满足特定条件的数。
275

被折叠的 条评论
为什么被折叠?



