码迷,mamicode.com
首页 > 其他好文 > 详细

数论模版

时间:2014-05-11 14:45:32      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:blog   class   code   c   2014   a   

 

//求gcd(a, b) 
LL gcd(LL a, LL b)
{
	return b ? gcd(b, a%b) : a;
}

 

//求整数x和y,使得ax+by=d, 且|x|+|y|最小。其中d=gcd(a,b) 
void gcd(LL a, LL b, LL& d, LL& x, LL& y)
{
	if(!b)
	{
		d = a;
		x = 1;
		y = 0;
	}
	else
	{
		gcd(b, a%b, d, y, x);
		y -= x * (a/b);
	}
}

 

//计算模n下a的逆。如果不存在逆, 返回-1 
LL inv(LL a, LL n)
{
	LL d, x, y;
	gcd(a, n, d, x, y);
	return d == 1 ? (x+n)%n : -1;
}


 

数论模版,布布扣,bubuko.com

数论模版

标签:blog   class   code   c   2014   a   

原文地址:http://blog.csdn.net/u011686226/article/details/25492949

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!