1. 用一个更大的2的幂次数来整除当前数 比如2102^{10}210一定能够整除21,22...2^1, 2^2...21,22...等等。 2. 使用位运算来判断 当一个数为2的幂次时,其二进制表示一定只有一位是1,其形式如001000000010000000100000,而把它减一后得到形如000111110001111100011111,即两数相与等于0. if ((i & (i-1) == 0) // i is power of 2