fork(3) download
  1. def as_sum(input):
  2. if input != 0:
  3. yield [input]
  4.  
  5. for i in xrange(input, input/2, -1):
  6. for v in list(as_sum(input-i)):
  7. yield [i] + v
  8.  
  9. if input > 0 and input % 2 == 0:
  10. for v in list(as_sum(input/2)):
  11. if len(v) > 1:
  12. yield [input/2] + v
  13.  
  14.  
  15. value = 16
  16.  
  17. for sum in as_sum(value):
  18. print " + ". join([str(i) for i in sum])
  19.  
  20.  
  21.  
Success #stdin #stdout 0s 23304KB
stdin
Standard input is empty
stdout
16
15 + 1
14 + 2
13 + 3
13 + 2 + 1
12 + 4
12 + 3 + 1
11 + 5
11 + 4 + 1
11 + 3 + 2
10 + 6
10 + 5 + 1
10 + 4 + 2
10 + 3 + 2 + 1
9 + 7
9 + 6 + 1
9 + 5 + 2
9 + 4 + 3
9 + 4 + 2 + 1
8 + 7 + 1
8 + 6 + 2
8 + 5 + 3
8 + 5 + 2 + 1
8 + 4 + 3 + 1