- UID
- 1327065
- 在线时间
- 小时
- 注册时间
- 2018-1-29
- 最后登录
- 1970-1-1
- 主题
- 帖子
- 性别
- 保密
|
感谢楼主,唯一纠正一小点,请尽量避免用负数取余。
(2^100)*(3^200) mod 7
=[2^(3*33 + 1)] * [3^(3*66 + 2)] mod 7
=[(2^3)^33 * 2] * [(3^3)^66 * 3^2] mod 7
=(8^33 * 2) * (27^66 * 9) mod 7
=[(7+1)^33 * 2] * [(28-1)^66 * 9] mod 7
=(1^33 * 2)* [(-1)^66 * 9] mod 7 这一步是有问题的,看下面
=2*9 mod 7
=4
-1 mod 7 并不只等于 -1
先看一个例子: (-17) mod 5 =?
答案一: (-17) = (-3)*5 + (-2),所以余数是 -2 。
答案二: (-17) = (-4)*5 + (+3),所以余数是 +3 。
所以这里 (-1)mod 7 可以是:
答案一: (-1) = (-1)*7 + (+6),所以余数是 +6 。
答案二: (-1) = (0)*7 + (-1),所以余数是 -1。
负数取余按照定义可以从负无穷和零两个方向来靠近。在定义上是没有标准答案的。
所以提醒大家求余数时,都从整数来找。原题可以这么解:
(3^200) mod 7
=(3^2)^100 mod 7
=(9)^100 mod 7
=(7+2)^100 mod 7
=2^100 mod 7
=(2^3)^33*2 mod 7
=(7+1)^33*2 mod 7 = 2
虽然会多一步,但是可以避免出现错误。
|
|