Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาโมดูลัสของตัวเลขโดยการต่อ n ครั้งใน Python


สมมติว่าเรามีตัวเลข A เราต้องสร้าง X จำนวนมากโดยเชื่อม A, n ครั้งติดต่อกันแล้วหาค่าของ X modulo m

ดังนั้น หากอินพุตเป็น A =15 n =3 m =8 เอาต์พุตจะเป็น 3 เพราะตัวเลข x จะเป็น 151515 และ 151515 mod 8 =3

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ถ้า A เท่ากับ 0 แล้ว
    • คืน 0
  • อัน:=เอ
  • 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 ใหม่
  • ชั้นกลับของ (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