|洛谷|分治|数学|P1226 取余运算||快速幂

http://www.luogu.org/problem/show?pid=1226

快速幂取余。

#include
#include
#include
#include
#define ms(i,j) memset(i,j, sizeof i);
using namespace std;
int poww(int a, int b, int c)
{
	int ans = 1, base = a%c;
	while (b!=0)
	{
		if (b & 1!=0) ans = (ans*base)%c;
		base = (base*base)%c;
		b>>=1;
	}
	return ans;
}
int main()
{
	int a,b,c;
	scanf("%d%d%d", &a ,&b ,&c);
	printf("%d^%d mod %d=%d", a, b, c, poww(a,b,c));
    return 0;
}


你可能感兴趣的:(数学/数论,二分/分治,洛谷)