4、C++源代码
编写一个程序解线性同余式ax≡c (mod m),为了使得到的所有解都在[0,m-1]范围内,需要简单的修改一下扩展的欧几里得算法,
为了使更简单的处理,要求a,c,m都为正整数,代码如下:
struct Triple
{
Triple(){}
explicit Triple(int g, int s, int t)
:g(g), s(s), t(t)
{
}
int g; //最大公约数
int s; //a的系数
int t; //b的系数
};
/*
@扩展的欧几里得算法
@输入:正整数a,b
@输出:三元组(g, s, t)使得sa + tb = g, 并且保证s