Power Mod
大きな数に対するモジュロ演算
Outline
&mimetex( a^{s} mod n = v);となるvを求める.
Program1
long powerMod(long a, long s, long n) {
long v = 1;
while(s > 0) {
if(s % 2 == 1) {
v = (v * a) % n;
}
a = (a * a) % n;
s /= 2;
}
return v;
}
EOF
** Program2 [#t1ff18d2]
#code(c)
long double big_mod(long double b, long double p, long double m) {
// B^p mod M = X
long double x = 1;
while(p > 0) {
if(fmod(p, 2)) {
p--;
x = fmod(x * b , m);
}
p /= 2;
b = fmod(fmod(b, m) * b, m);
}
return x;
}