#include <stdio.h>
#include <stdlib.h>

int powRec(int x, int n)
{
	if (n==0)
	{
		return 1;
	}
	else{
		x=x*powRec(x,n-1);
		return x;
	}
}


int powImp(int x, int n)
{
	if (n==0)
	{
		return 1;
	}else
	{
		for (int i = 1; i < n; ++i)
		{
			x=x*x;
		}
		return x;
	}
}

void mystere(int n)
{
	if (n==0)
	{
		/* rien */
	}else
	{
		mystere(n/2);
		printf("%d",n%2);
	}
}

void mystereImp(int n)
{
	int tab[32];
	int i;
	if (n==0)
	{
		/* rien */
	}else
	{
		for (i = 0; n!=0 ; ++i)
		{
			tab[i]=n%2;
			n=n/2;
		}
		for (int j = i-1; j > -1 ; --j)
		{
			printf("%d",tab[j]);
		}
	}
}


int iteration=-1;

void syracuse2(int n)
{
	iteration++;
	if (n==1)
	{
		printf("u%d = %d\n",iteration,1);
	}
	else{if ((n%2)==0)
	{
		printf("u%d = %d/2 = %d\n",iteration,n,n/2);
		syracuse2(n/2);
	}else
	{
		printf("u%d = 3*%d+1 = %d\n",iteration,n,(3*n)+1);
		syracuse2((3*n)+1);
	}}
}
void syracuse(int n)
{
	iteration=-1;
	syracuse2(n);
}


int main(int argc, char const *argv[])
{
	/*mystere(5646);
	printf("\n");
	mystereImp(5646);*/
	syracuse(5);
	syracuse(13);

	return 0;
}