C语言,算法, 数据结构。请问大神,我有一个很大的数,要对他取模,比如说n%10007。请问怎么做?

最好附上代码,谢谢

如果这个数是m,而m已经大到现成的整数数据类型已经无法记录了,那就把它分成好多现成的数据类型能够记录小一些的数的和或积,再用同余定理来解决:
(a+b)%c=(a%c+b%c)%c;——加法同余定理
(a*b)%c=(a%c*b%c)%c;——乘法同余定理
比如:1234567787654322这个数unsigned int已经不能记录了,但可表示为12345678*99999999,而12345678和99999999都可以用int型表达,那么1234567787654322%10007就可以表示为:(12345678%10007*99999999%10007)%10007。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-03-22
n%10007;

相似回答