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

pythonserver side programmingprogramming更新于 2026/1/31 13:00:17

假设我们有一个数字 A。我们必须通过连续连接 A n 次来生成一个大数字 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

相关文章


有用资源