求非标准的同余方程组的解法
由于剩余定理要求
x ≡a[i] (mod m[i]) i=1,,,n
中的m[i]两两互素,但对于m[i]不是两两互素的又怎么解呢?
比如如何解下面方程组:
x=8 mod 15
x=5 mod 8
x=13 mod 25
,请用例子说明
[解决办法]
不懂中国剩余定理(孙子定理),写了个穷举算法,不要见笑。
#include "stdafx.h "
/*
由于剩余定理要求
x ≡a[i] (mod m[i]) i=1,,,n
中的m[i]两两互素,但对于m[i]不是两两互素的又怎么解呢?
比如如何解下面方程组:
x=8 mod 15
x=5 mod 8
x=13 mod 25
,请用例子说明
*/
void test()
{
int MM= 15 * 8 * 25/5; // LCM(15,8,25)
for (int i=0;i <MM;i++)
{
if (i % 15==8 && i % 8==5 && i % 25==13)
{
printf( "x= %d * k + %d (k=0,1,2,3,4,5..)\n ",MM,i);
}
}
}
int main(int argc, char* argv[])
{
test();
return 0;
}