How to calculate the Collatz sequence for a range starting from 3 to 10 in PHP

1 Answer

0 votes
function CalcCollatz($x) {
    if (($x & 1) != 0) {
        return $x * 3 + 1;
    }
    
    return $x / 2;
}

function PrintCollatzSequence($x) {
    echo $x . " ";
    
    while ($x != 1) {
        $x = CalcCollatz($x);
        echo $x . " ";
    }
}
        
for ($i = 3; $i < 11; $i++) {
    PrintCollatzSequence($i);
    echo "\n";
}




/*
run:

3 10 5 16 8 4 2 1 
4 2 1 
5 16 8 4 2 1 
6 3 10 5 16 8 4 2 1 
7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 
8 4 2 1 
9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 
10 5 16 8 4 2 1 

*/

 



answered Nov 7, 2023 by avibootz
...