Why is the case of large number different from the case of small numbers? As Zhen asked, is this a programming problem?
–
Karolis JuodelėNov 4 '12 at 11:55

@KarolisJuodelė Yes, this is a programming problem but I do not want to use bignum library. Because I think there must be interesting property of modulo which can do the task efficiently. Any good source for modular arithmetic in and out?
–
JainiNov 4 '12 at 12:00

1 Answer
1

As small as your modulus is, I don't think you can do significantly better than ordinary long division (typically done in base $2^{64}$) to compute the remainder.

However, you can optimize the individual steps; e.g. by using an algorithm like Barrett reduction to obtain the remainder of a 2 digit x 1 digit remainder calculation.

Writing efficient (or even simply correct) division code is a very irritating task; unless you really, really like this sort of programming or are using a specialized algorithm for a very special case, you are certainly better off with a good (or even just decent) bignum package.