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

a*b(mod m)的实现过程

时间:2015-08-03 08:59:09      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:数论算法   算法   

/*a*b (mod m) 的实现过程*/
/*当a,b很大的时候mod m就会产生溢出, 故运用乘法原理转换为加法求解*/
LL multi(LL a, LL b, LL m)
{
	LL exp = a %m, res = 0;
	while (b)
	{
		if (b & 1)  		//b的最低位是否为1 
		{
			res = res + exp;
			if (res >= m)
				res = res -m;
		}
		exp = exp *2;
		if (exp > m)
			exp = exp - m;
		b >>= 1; 			//将b除以2 
	}
	return res;
} 

版权声明:本文为博主原创文章,未经博主允许不得转载。

a*b(mod m)的实现过程

标签:数论算法   算法   

原文地址:http://blog.csdn.net/xiaotan1314/article/details/47249949

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