Модульное возведение в норму для большого мода в C ++
Это код, который я использую для расчета(n^p)%mod
, К сожалению, это не подходит для больших значенийmod
(в моем случаеmod = 10000000000ULL
) когда я звонюmain()
метод. Любая идея; Зачем?
ull powMod(ull n, ull p, ull mod) {
ull ans = 1;
n = n%mod;
while(p) {
if(p%2 == 1) {
ans = (ans*n)%mod;
}
n = (n*n)%mod;
p /= 2;
}
return ans;
}
Вот,ull
является typedef дляunsigned long long
.