输入两个整数A和B,求A的B次方的因子和,结果对1000000007取模。
def mod_exp(base, exp, mod):
result = 1
while exp > 0:
if exp % 2 == 1:
result = (result * base) % mod
base = (base * base) % mod
exp //= 2
return result
def sum_of_factors(n):
total = 0
limit = int(n**0.5)
for i in range(1, limit + 1):
if n % i == 0:
total += i
if i != n // i: # 如果是不同的因子,添加两个因子
total += n // i
return total
def main(A, B):
MOD = 1000000007
power_value = mod_exp(A, B, MOD)
factors_sum = sum_of_factors(power_value) % MOD
return factors_sum
# 示例
A = 2
B = 3
result = main(A, B)
print(result)