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


int collatz(int n);


int collatz(int n)
{
	return (n%2==0)?(n/2):((3*n)+1);
}


int main(int argc, char *argv[])
{
	int x;

	if (argc>2)
	{
		fprintf(stderr, "Usage:    %s [<number>]\n", argv[0]);

		return EXIT_FAILURE;
	}
	else
	{
		if (argc==1)
		{
			printf("Numero: ");
			scanf("%d", &x);
		}
		else
			sscanf(argv[1], "%d", &x);

		if (x<=0)
		{
			fprintf(stderr, "Il numero immesso dev'essere maggiore di 0.\n");

			return EXIT_FAILURE;
		}
		else
		{
			printf("Sequenza:");

			do
			{
				printf(" %d", x=collatz(x));
			}
			while (x!=1);

			printf("\n");

			return EXIT_SUCCESS;
		}
	}
}

