using System;
public class Program
{
// Collatz Sequence Example:
// 13 - 40 - 20 - 10 - 5 - 16 - 8 - 4 - 2 - 1
private static long CalcCollatz(long x) {
// if (number is odd) return x*3 + 1
// if (number is even) return x/2
if ((x & 1) != 0) { // odd
return x * 3 + 1;
}
return x / 2; // even
}
private static void PrintCollatzSequence(long x) {
Console.Write(x + " ");
while (x != 1) {
x = CalcCollatz(x);
Console.Write(x + " ");
}
}
public static void Main(string[] args)
{
for (long i = 3; i < 11; i++) {
PrintCollatzSequence(i);
Console.WriteLine();
}
}
}
/*
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
*/