#59【快速幂】A的B次方

Description

给出三个整数 a,b,m,求 ab mod m 的值。

Input

一行三个整数 a,b,m。

Output

一个整数,表示 ab mod m 的值。

Sample Input

2 100 1007

Sample Output

169

HINT

 

对于全部数据,1≤a,b,m≤109​​。

第一次开int,WA了,后来机智的改成long long,A了。

#include <iostream>

using namespace std;

int main(void)
{
	long long a, b, c, s;
	
	while (~scanf("%d%d%d", &a, &b, &c))
	{
		s = 1;
		while (b != 1)
		{
			if (b & 1) // 判定奇数,位运算与更省时
			{
				s *= a;
				s %= c;
			}
			a *= a;
			a %= c;
			b >>= 1; // 就是除2,位运算右移省时
		}
		printf("%d\n", s * a % c);
	}
	
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值