Advertisement
Guest User

123

a guest
Nov 18th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.85 KB | None | 0 0
  1. s = input()
  2. n = len(s)
  3. counter = 0
  4.  
  5. def nod(a,b):
  6.     while (a != 0 and b !=0):
  7.         if (a == b):
  8.             return a
  9.         if (a > b):
  10.             if a % b == 0:
  11.                 return b
  12.             a -= b
  13.         else:
  14.             if b % a == 0:
  15.                 return a
  16.             b -= a
  17.     if (a == 0):
  18.         return b
  19.     else:
  20.         return a
  21.  
  22. def nok(a,b):
  23.     return int(a*b/nod(a,b))
  24.  
  25. def compare(s1,s2,maxl):
  26.     maxp1 = len(s1)
  27.     maxp2 = len(s2)
  28.     p1 = 0
  29.     p2 = 0
  30.     for i in range(0,maxl):
  31.         if (s1[p1] != s2[p2]):
  32.             return False
  33.         p1+=1
  34.         if(p1 == maxp1):
  35.             p1 = 0
  36.         p2+=1
  37.         if(p2 == maxp2):
  38.             p2 = 0
  39.  
  40.     return True
  41.  
  42. for k in range(1, n + 1):
  43.     d = nok(k,n)
  44.     if (compare(s[n-k:n], s, d)):
  45.         counter += 1
  46.  
  47. print(counter)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement