定义回顾:把正整数写成二进制(无前导 0)。若其中 1 的个数等于 0 的个数,则称为完美数。
设总位数为 L,则必须有 L 为偶数,且 #1 = #0 = L/2。同时最高位必须为 1(无前导 0)。
L=2k,并且最高位为 1、总 1 的个数为 k。2k,最小的完美数是把除最高位外的 (k-1) 个 1 全放在最低位:给定一个正整数的二进制表示(不含前导 0 )中,1 的个数为 n ,0 的个数为 m 。
若满足 m=n
则称该整数为完美数。
现给定一个整数 x ,请找出大于等于 x 的最小完美数。