
两个数论的算法
#include
using namespace std;
struct result
{
int d;
int x;
int y;
};
//d=gcd(a,b)=ax+by
result ExtendeEuclid(int a,int b)
{
result res;
if(!b)
{
res.d=a;
res.x=1;
res.y=0;
return res;
}
result temp=ExtendeEuclid(b,a%b);
res.d=temp.d;
res.x=temp.y;
res.y=temp.x-a/b*temp.y;
return res;
}
inline long mod(long a,long b)
{
return (a%b+b)%b;
}
//计算满足ax和b关于n同余的x
void ModularLinearEquationSolver(int a,int b,int n)
{
if(a<=0||n<=0)
{
cout<<"参数有错"<
return ;
}
result re=ExtendeEuclid(a,n);
if(b%re.d==0)
{
int x0=mod(re.x*(b/re.d),n);
for(int i=0;i<=re.d-1;i++)
{
cout<
}
}
else
{
cout<<"无解"<
}
}
int main()
{
ModularLinearEquationSolver(14,30,100);
return 0;
}
2017年计算机二级C++辅导实例编程(3).doc正在阅读:
2016至2017学年度小学六年级上册英语答案:2016最新小学六年级英语毕业考试题05-09
连续拨打三次的手机作文600字07-05
2019江苏公卫执业医师实践技能成绩查询及合格分数线【已公布】04-13
[2016年成人高考高起点数学真题及答案解析]2016年成人高考高起点物理系统复习资料七04-26
快乐的一天英语作文08-01
2017上海交通大学工会招聘生活福利人员公告【1名】03-06
销售团队霸气的口号04-04
所谓命运我之见作文800字12-01
加拿大留学选择寄宿家庭的须知10-10
背影真美作文800字01-18