概述
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;
}
最后
以上就是殷勤可乐为你收集整理的大数快速幂次取余的全部内容,希望文章能够帮你解决大数快速幂次取余所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复