/************************************************
Algorithmen und Problemloesungen mit C++,
http://www.algorithmen-und-problemloesungen.de
Copyright @2007 by Doina Logofatu
************************************************/

#include <fstream>

using namespace std;

void fCollatz(unsigned long n, int& l, ofstream &out){
  out << n << " ";
  if(n!=1){
    l++;
    if(n%2){
      fCollatz(3*n+1, l, out);      
    } else {
        fCollatz(n/2, l, out);
    }
  } else {
      out << "[1] STOP";
  }
}

int main(){
  unsigned long n;
  int l;
  ifstream in("numbers.in");
  ofstream out("collatzSeq.out");
  while(in && !in.eof() && in>>n){
    l=0;
    fCollatz(n, l, out);
    out << "<" << l << ">" << endl << endl;
  }
  return 0;
}

