Find k integers that can make up all integers below N. For given $N$, what is the smallest $k$ so that we can find $k$ natural numbers satisfiying some of these $k$ numbers can add up to any $i$ for $1\leq i\leq N$. Moreover, how to find all possible $k$ numbers?
 A: If you have $k$ numbers then there are $2^k-1$ subsets of those numbers. So you can hope to be able to make up at most $2^k-1$ different integers (possibly less if some different subsets make up the same integers.
With this in mind if we have $k$ integers and $2^k<N+1$ we cannot hope to make up all integers below $N$. So we need $2^k\geq N+1\iff k\geq  \log_2(N+1)$. Hence the least possible value of $k$ is $\lceil \log_2(N+1) \rceil$. 
If we set $k$ to this value then taking the $k$ integers $1,2,4\dots 2^{k-1}$ will allow us to make up all numbers between $2^k-1$ and $1$. Since $2^k\geq N+1$ this allows us to express every number $i$ with $1\leq i\leq N$
A: I believe it is well known that  1,2,4, ... $2^k$, $2^k -1 \not\lt N$ does the trick.
1+2+4+ .... to k terms is a G.P. with a = 1, r = 2, S(k) = $\dfrac{2^k - 1}{2-1} = 2^k - 1$, 
Suppose numbers from 1 through $2^k - 1$ are covered, then  the next term, $2^k$ ensures an unbroken chain covered upto $2^{k+1} -1$
But {1,2} covers all numbers upto $2^2 - 1$, hence proved
PS:
For an arbitrary number N, not of the form $2^k - 1$, I can't find a general rule to minimize k
