/*
If there are no two consecutive 1s in a number binary representation,
it is Sparse. 5 (101) is sparse, 6 (110) is not.
*/
function is_sparse($n) {
$result = $n & ($n >> 1);
if ($result == 0)
return true;
return false;
}
function next_sparse($number) {
while (1) {
if (is_sparse($number)) {
return $number;
}
$number++;
}
}
echo next_sparse(86) . "\n";
echo next_sparse(5) . "\n";
echo next_sparse(38) . "\n";
echo next_sparse(305) . "\n";
/*
run:
128
5
40
320
*/