在Python中编写程序查找通过n次连接数字后的数的模数

在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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程