📅  最后修改于: 2023-12-03 15:29:12.587000             🧑  作者: Mango
如果你曾经尝试过计算7的高次方并找出其最后两位数,你会发现这是一个非常有趣的问题。但是如何计算呢?我们可以使用以下方法:
def mod_pow(base, exponent, modulus):
# 初始化返回值为1
result = 1
while exponent > 0:
# 如果指数是奇数,则将结果乘以基数,然后取模
if exponent % 2 == 1:
result = (result * base) % modulus
# 将基数平方,指数减半,然后取模
base = (base * base) % modulus
exponent //= 2
return result
| 7^k | 7^k模100 | | --- | ------- | | 7^0 | 01 | | 7^1 | 07 | | 7^2 | 49 | | 7^3 | 43 | | 7^4 | 01 | | 7^5 | 07 | | 7^6 | 49 |
通过观察上表,我们可以发现,7的幂的最后两位数呈现出一个最小循环节为4的循环模式,因此我们可以使用以下代码来计算7的幂的最后两位数:
def last_two_digits_of_7_pow_k(k):
# 模4等于0的情况
if k % 4 == 0:
return 1
# 模4等于1的情况
elif k % 4 == 1:
return 7
# 模4等于2的情况
elif k % 4 == 2:
return 9
# 模4等于3的情况
elif k % 4 == 3:
return 3
综上所述,计算7的幂数的最后两位数有两种方式:模重复平方算法和通过观察模式来计算。两种方式各有优缺点,具体使用哪种方式则需要根据使用场景来判断。