题解 | #求root(N, k)#

求root(N, k)

https://www.nowcoder.com/practice/9324a1458c564c4b9c4bfc3867a2aa66

#include<iostream>
typedef long long LL;
using namespace std;

int qpow(LL x,LL y,LL k)
{
	if(y == 0) return 1;
	if(y % 2 == 0) {
		LL temp = qpow(x,y / 2,k);
		return temp % (k - 1) * temp;
	}else{
		LL temp = qpow(x, y - 1,k);
		return temp * x % (k - 1);
	}
}

int main(void)
{
	LL x,y,k;
	while(cin >> x >> y >> k)
	{
		LL ans = qpow(x,y,k) % ( k - 1);
		if(ans == 0) cout << k - 1 << endl;
		else cout << ans << endl;
	}
	return 0;
}

全部评论

相关推荐

09-29 11:19
门头沟学院 Java
点赞 评论 收藏
分享
去B座二楼砸水泥地:不过也可以理解,这种应该没参加过秋招
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务