我来突破楼主的速度
- unsigned char table[]={
- 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,
- 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
- 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 8,9,9,10,9,10,10,11,9,10,10,11,10,11,11,12,
- 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 8,9,9,10,9,10,10,11,9,10,10,11,10,11,11,12,
- 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 8,9,9,10,9,10,10,11,9,10,10,11,10,11,11,12,
- 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 8,9,9,10,9,10,10,11,9,10,10,11,10,11,11,12,
- 4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 8,9,9,10,9,10,10,11,9,10,10,11,10,11,11,12,
- 5,6,6,7,6,7,7,8,6,7,7,8,7,8,8,9,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 8,9,9,10,9,10,10,11,9,10,10,11,10,11,11,12,
- 6,7,7,8,7,8,8,9,7,8,8,9,8,9,9,10,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 8,9,9,10,9,10,10,11,9,10,10,11,10,11,11,12,
- 7,8,8,9,8,9,9,10,8,9,9,10,9,10,10,11,
- 8,9,9,10,9,10,10,11,9,10,10,11,10,11,11,12,
- 8,9,9,10,9,10,10,11,9,10,10,11,10,11,11,12,
- 9,10,10,11,10,11,11,12,10,11,11,12,11,12,12,13,
- };
- int func5(unsigned int m)
- {
- unsigned n;
- n = table[m & 0x1FFF];
- n+= table[m>>13 & 0x1FFF];
- n+= table[m>>26 & 0x3F];
- return n;
- }
复制代码
在我的机器上,用楼主的计算法,从0-0x7FFFFFFF
楼主的算法 我的算法
28.4203秒 17.0208秒
还快了不少,世界记录又被打破了! |