Skip to main content
1 of 3
batman
  • 369
  • 3
  • 8

Python 182 characters

import itertools i,j,v=1,2,[] while i<1000000: v+=[i] i,j=j,i+j y=input() for t in xrange(len(v)+1): for s in itertools.combinations(v,t): if sum(s)==y: print s 

Sample Run:

>9 (1, 8) (1, 3, 5) 1000 (13, 987) (5, 8, 987) (13, 377, 610) (2, 3, 8, 987) (5, 8, 377, 610) (13, 144, 233, 610) (2, 3, 8, 377, 610) (5, 8, 144, 233, 610) (13, 55, 89, 233, 610) (2, 3, 8, 144, 233, 610) (5, 8, 55, 89, 233, 610) (13, 21, 34, 89, 233, 610) (2, 3, 8, 55, 89, 233, 610) (5, 8, 21, 34, 89, 233, 610) (2, 3, 8, 21, 34, 89, 233, 610) 2048 (1, 5, 13, 55, 377, 1597) (1, 2, 3, 13, 55, 377, 1597) (1, 5, 13, 21, 34, 377, 1597) (1, 5, 13, 55, 144, 233, 1597) (1, 5, 13, 55, 377, 610, 987) (1, 2, 3, 5, 8, 55, 377, 1597) (1, 2, 3, 13, 21, 34, 377, 1597) (1, 2, 3, 13, 55, 144, 233, 1597) (1, 2, 3, 13, 55, 377, 610, 987) (1, 5, 13, 21, 34, 144, 233, 1597) (1, 5, 13, 21, 34, 377, 610, 987) (1, 5, 13, 55, 144, 233, 610, 987) (1, 2, 3, 5, 8, 21, 34, 377, 1597) (1, 2, 3, 5, 8, 55, 144, 233, 1597) (1, 2, 3, 5, 8, 55, 377, 610, 987) (1, 2, 3, 13, 21, 34, 144, 233, 1597) (1, 2, 3, 13, 21, 34, 377, 610, 987) (1, 2, 3, 13, 55, 144, 233, 610, 987) (1, 5, 13, 21, 34, 55, 89, 233, 1597) (1, 5, 13, 21, 34, 144, 233, 610, 987) (1, 2, 3, 5, 8, 21, 34, 144, 233, 1597) (1, 2, 3, 5, 8, 21, 34, 377, 610, 987) (1, 2, 3, 5, 8, 55, 144, 233, 610, 987) (1, 2, 3, 13, 21, 34, 55, 89, 233, 1597) (1, 2, 3, 13, 21, 34, 144, 233, 610, 987) (1, 5, 13, 21, 34, 55, 89, 233, 610, 987) (1, 2, 3, 5, 8, 21, 34, 55, 89, 233, 1597) (1, 2, 3, 5, 8, 21, 34, 144, 233, 610, 987) (1, 2, 3, 13, 21, 34, 55, 89, 233, 610, 987) (1, 2, 3, 5, 8, 21, 34, 55, 89, 233, 610, 987) 
batman
  • 369
  • 3
  • 8