Problem E
Partitioning a
Number
Input: Standard Input
Output: Standard Output
let
f(n) be the number of ways to write n as a sum of powers of 2. Each power can
be used at most twice For example, there are five ways
to partition 10:
8+2 8+1+1 4+4+2
4+4+1+1 4+2+2+1+1
So we have f(10)=5.
Given n, find the maximal value among f(0),f(1),...,f(n).
Input
The input contains at most 1000 test cases. Each test case contains a single line containing an integer n (1 ≤ n ≤ 1018). The last test case is followed by a single zero, which should not be processed.
Output
For each test case, print the case number and the maximal value from f(0) to f(n). Look at the output for sample input for details.
4 10 87 3456 1000000000 0 |
Case 1: 3 Case 2: 5 Case 3: 21 Case 4: 233 Case 5: 1346269 |
Problemsetter: Linyun
Yu
Special
thanks: Rujia Liu