/*
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) {
$number++;
if (is_sparse($number)) {
return $number;
}
}
}
echo next_sparse(72) . "\n";
echo next_sparse(5) . "\n";
echo next_sparse(36) . "\n";
echo next_sparse(305) . "\n";
/*
run:
73
8
37
320
*/