11 # 2 × (2 × 3 × 5) × 5 × (11 × 17) × 239 = 2 × 30 × 5 × 187 × 239 = 13407900
12 factors = [3, 11, 17, 19, 37] #[2, 3, 3, 5, 11, 17, 239]
15 for line in range(12):
19 while i < len(factors):
20 j = random.randint(1, len(factors) - i)
23 for i in range(len(segments) - 1):
24 j = random.randint(i, len(segments) - 1)
25 segments[i], segments[j] = segments[j], segments[i]
26 assert sum(segments) == len(factors)
28 len(segments) >= 3 and
29 len(segments) < len(factors) and
30 tuple(segments) not in done_segments
33 done_segments.add(tuple(segments))
39 factor = ' × '.join([str(k) for k in factors[i:i + j]])
41 factor = '(' + factor + ')'
42 long_form.append(factor)
43 short_form.append(str(prod(factors[i:i + j])))
45 long_form = ' × '.join(long_form)
46 short_form = ' × '.join(short_form)
47 answer = str(prod(factors))
49 print(long_form + ' = ' + short_form + ' = ' + answer)