在Python中编写程序查找通过n次连接数字后的数的模数
假设我们有一个数字A。 我们必须通过连续n次连接A生成一个大数X,并找到X模m的值。
因此,如果输入为A = 15、n = 3、m = 8,则输出将为3,因为数字x将为151515,而151515 mod 8 = 3。
为了解决这个问题,我们将按照以下步骤操作−
- 如果A与0相同,则
- 返回0
- an:= A
- c:= A中数字的个数
- c:= 10 ^ c
- d:= c-1
- newmod:= d*m
- val:=(c ^ n mod newmod)-1
- val:=(val + newmod)mod newmod
- an:=(an * val)mod newmod
- 返回(an / d)的下取整
示例
让我们看一下以下实现,以获得更好的理解−
def solve(A, n, m):
if A == 0:
return 0
an = A
c = len(str(A))
c = 10 ** c
d = c - 1
newmod = d * m
val = pow(c, n, newmod) - 1
val = (val + newmod) % newmod
an = (an * val) % newmod
return an // d
A = 15
n = 3
m = 8
print(solve(A, n, m))
输入
15、3、8
输出
3