Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import json
- from operator import mul
- from functools import reduce
- c = 1, 2, 4, 7, 8, 14, 28, 56, 5507, 11014, 22028, 38549, 44056, 77098, 154196, 308392, 140186621, 280373242, 560746484, 981306347, 1121492968, 1962612694, 3925225388, 7850450776, 772007721847, 1544015443694, 3088030887388, 5404054052929, 6176061774776, 10808108105858, 21616216211716
- N = reduce(mul, c[15:28])
- # REMOVE REPEATING INTEGERS
- c = [c[x] for x in range(len(c)) if not(c[x] in c[:x])]
- c = sorted(c)
- reset = 0
- subset_prod = []
- covered_elements = []
- # shuffling list function
- def shuff(c, n):
- for i in range(n-1,0,-1):
- j = random.randint(0,i)
- c[i],c[j] = c[j],c[i]
- c.append(c[len(c)-1])
- random.seed()
- shuff(c, len(c))
- n = len(c)
- b = 10
- steps = n*(2**b)*((n*(2**b))-1)*((n*(2**b))-2)//6
- # Fixed semantic bug that
- # cleared lists prematurely.
- for a in range(1, steps + 1):
- reset = reset + 1
- if reset > len(c):
- covered_elements = []
- reset = 0
- shuff(c, len(c))
- c.append(c[0])
- del [c[0]]
- for l in c:
- if l not in covered_elements:
- if N % l == 0:
- if len(covered_elements) == 0:
- covered_elements.append(l)
- if len(covered_elements) > 0:
- if l not in covered_elements:
- if reduce(mul, covered_elements) < N:
- covered_elements.append(l)
- if reduce(mul,covered_elements) == N:
- print('Found Subset Product', covered_elements)
- break
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement