#include <stdio.h>
// Collatz Sequence Example:
// 13 - 40 - 20 - 10 - 5 - 16 - 8 - 4 - 2 - 1
long long CalcCollatz(long long x) {
// if (number is odd) return x*3 + 1
// if (number is even) return x/2
if (x & 1) { // odd
return x * 3 + 1;
}
return x / 2; // even
}
void PrintCollatzSequence(long long x) {
printf("%3ld", x);
while (x != 1) {
x = CalcCollatz(x);
printf("%3ld", x);
}
}
int main() {
for (long long i = 3; i < 11; i++) {
PrintCollatzSequence(i);
printf("\n");
}
return 0;
}
/*
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
*/