- 最后登录
- 2013-11-11
- 在线时间
- 873 小时
- 阅读权限
- 40
- 注册时间
- 2008-9-15
- 积分
- 1194
- 帖子
- 924
- 精华
- 6
- UID
- 44804
- 性别
- 保密
- 积分
- 1194
- 帖子
- 924
- 精华
- 6
- UID
- 44804
- 性别
- 保密
|
一个n位数,表示成 a(n)a(n-1)a(n-2)......a(3)a(2)a(1)
求它除以 m 的余数。
简便的方法就是 找到一个数,可以表示成 10^k+1 或 10^k-1 的形式 它除以 m 的余数是0。
一:10^k+1 除以 m 余数是0
那么 a(n)a(n-1)a(n-2)......a(3)a(2)a(1) 除以 m 的余数 就等于
a(k)a(k-1)......a(2)a(1)-a(n)a(n-1)......a(k+2)a(k+1) 除以 m 的余数
比如 m=11 k=1
求 123456789 除以 11余数
123456789 ≡ 9-12345678 =9-(8-1234567)=9-8+1234567=9-8+7-123456 (mod 11)
≡ 9-8+7-6+12345=......=9-8+7-6+5-4+3-2+1 (mod 11)
对于11来说,除以它的余数,就等于奇数位的和减去偶数位的和除以11的余数。
比如 m=7 k=3 (因为1001整除7)
比如 39477158 除以7的余数
39477158 ≡ 158-39477≡ 158-477+39 (mod 7) 就是楼主举的例子。
比如 m=13 k=3 (因为1001整除13)
同7相同。
39477158 ≡ 158-39477≡ 158-477+39 (mod 13)
二:10^k-1 除以 m 余数是0
那么 a(n)a(n-1)a(n-2)......a(3)a(2)a(1) 除以 m 的余数 就等于
a(k)a(k-1)......a(2)a(1)+a(n)a(n-1)......a(k+2)a(k+1) 除以 m 的余数
比如 m=9或3 k=1
求1234567 除以 9的余数
1234567 ≡ 7+123456≡7+6+12345≡7+6+5+1234≡......≡7+6+5+4+3+2+1 (mod 9)
对于9或3来说,除以它的余数,就等于所有位数的和除以9或3的余数。
比如 m=37 k=3
求123456789 除以 37的余数
123456789≡789+123456≡789+456+123 (mod 37) |
|