long long powmodfast(long long a, long long b, long long c) {
std::string bin = "";
long long temp = b;
while (temp != 0) {
if (temp % 2 == 0) {
bin = bin + "0";
}
else {
bin = bin + "1";
}
temp = temp / 2;
}
long long wynik = 1;
long long pom[22];
pom[0] = a;
for (long long i = 1; i < bin.length(); i++) {
pom[i] = (pom[i - 1] * pom[i - 1]) % c;
}
for (long long i = 0; i < bin.length(); i++) {
if (bin[i] == '1') {
wynik = (wynik*pom[i]) % c;
}
}
return wynik;
}
最后
以上就是殷勤可乐最近收集整理的关于大数快速幂次取余的全部内容,更多相关大数快速幂次取余内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复