proffreda

Counting Number of Prime Forms

Jun 25th, 2016
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1.  
  2. def strtoval(s):
  3. val=0
  4. pow=1
  5. for i in reversed(range(len(s))):
  6. if s[i]=='1':
  7. val += pow
  8. pow *= 2
  9. return val
  10.  
  11. def settostr(setex,n):
  12. str=""
  13. for i in range(n):
  14. if i in setex:
  15. str += '1'
  16. else:
  17. str += '0'
  18. return str
  19.  
  20. def isprimeform(str):
  21. teststr=str[:]
  22. val = strtoval(str)
  23. for i in range(len(str)-1):
  24. teststr = teststr[1:] + teststr[0]
  25. if strtoval(teststr) > val:
  26. return False
  27. teststr=str[::-1]
  28. for i in range(len(str)-1):
  29. teststr = teststr[1:] + teststr[0]
  30. if strtoval(teststr) > val:
  31. return False
  32. return True
  33.  
  34.  
  35. import time
  36. start = time.time()
  37. import itertools
  38. n = 12
  39. iterable = range(0, n)
  40. pcsetslist = [list(itertools.combinations(iterable,i)) for i in range(0,n + 1)]
  41. pcsets = list(itertools.chain(*pcsetslist))
  42.  
  43. count=0
  44. for set in pcsets:
  45. if isprimeform(settostr(set,n)):
  46. print(set)
  47. count += 1
  48.  
  49. print("Count of number of prime forms:", count)
  50. print(str(time.time() - start) + ' seconds')
Advertisement
Add Comment
Please, Sign In to add comment