用c语言编程实现计算同余式组x≡b1(mod m1) x≡b2(mod m2) 的解
时间: 2023-05-30 07:02:46 浏览: 203
#include <stdio.h>
int main()
{
int b1, m1, b2, m2; // 输入的同余式组参数
int M1, M2, y1, y2, x; // 中间变量
printf("输入同余式组:x≡b1(mod m1) x≡b2(mod m2)\n");
printf("请输入b1和m1:");
scanf("%d%d", &b1, &m1);
printf("请输入b2和m2:");
scanf("%d%d", &b2, &m2);
// 计算M1和M2
M1 = m1 * m2;
M2 = m2 * m1;
// 计算y1和y2
for (int i = 1; i < m1; i++)
{
if ((M1 / m1) * i % m1 == 1)
{
y1 = (M1 / m1) * i;
break;
}
}
for (int i = 1; i < m2; i++)
{
if ((M2 / m2) * i % m2 == 1)
{
y2 = (M2 / m2) * i;
break;
}
}
// 计算x
x = (b1 * M2 * y2 + b2 * M1 * y1) % (M1 * M2);
printf("同余式组的解为:x=%d\n", x);
return 0;
}
阅读全文