发布网友 发布时间:2023-09-07 15:25
共2个回答
热心网友 时间:2023-09-17 00:05
运用余数定理,(A×B) mod 1000 = (A mod 1000)×(B mod 1000)
对指数进行拆分,拆分成2的n次方的和,减少计算量
2022=1024+512+256+128+64+32+4+2
9²⁰²²=9¹⁰²⁴×9⁵¹²×9²⁵⁶×9¹²⁸×9⁶⁴×9³²×9⁴×9²
通过平方迭代计算相应的末三位(mod 1000 的余数):
9² mod 1000 = 81
9⁴ mod 1000 = 81² mod 1000 = 561
9³² mod 1000 = [(561²)²]² mod 1000 = (721²)² mod 1000 = 841² mod 1000 = 281
9⁶⁴ mod 1000 = 281² mod 1000 = 961
9¹²⁸ mod 1000 = 961² mod 1000 = 521
9²⁵⁶ mod 1000 = 521² mod 1000 = 441
9⁵¹² mod 1000 = 441² mod 1000 = 481
9¹⁰²⁴ mod 1000 = 481² mod 1000 = 361
计算 9²⁰²² mod 1000 的值:
9²⁰²² mod 1000
= (9¹⁰²⁴×9⁵¹²×9²⁵⁶×9¹²⁸×9⁶⁴×9³²×9⁴×9²) mod 1000
= (9¹⁰²⁴ mod 1000)×(9⁵¹² mod 1000)×(9²⁵⁶ mod 1000)×(9¹²⁸ mod 1000)×(9⁶⁴ mod 1000)×(9³² mod 1000)×(9⁴ mod 1000)×(9² mod 1000)
= (361×481×441×521×961×281×561×81) mod 1000
= (641×441×521×961×281×561×81) mod 1000
= (681×521×961×281×561×81) mod 1000
= (801×961×281×561×81) mod 1000
= (761×281×561×81) mod 1000
= (841×561×81) mod 1000
= (801×81) mod 1000
= 881
因此,9²⁰²² 的末三位是 881。
~~~~~~
这类问题用编程计算更为看快捷
附:验证结算结果和fortran代码
热心网友 时间:2023-09-17 00:05
9的2023次方后三位是881