1#include <sstream>
2#include <iostream>
3
4int collatz(int a) {
5 if (a % 2 == 0)
6 return a / 2;
7 return 3 * a + 1;
8}
9
10std::string collatzSequence(int a) {
11 std::stringstream sstream;
12 sstream << a << ": ";
13 for (int i = a; i >= 1; i = collatz(i)) {
14 if (i == 1) {
15 sstream << "1\n";
16 break;
17 }
18 sstream << i << ", ";
19 }
20 return sstream.str();
21}
22
23int main(void) {
24 for (int i = 1; i <= 10000; i++) {
25 std::string message = collatzSequence(i);
26 std::cout << message;
27 }
28}