#include #include int print_help(void) { printf("Usage: collatz " "\nMade by samuel@yakubos.org\n\n"); return 1; } int main(int argc, char *argv[]) { if ( argc < 2 || argc > 2) return print_help(); char *endptr; int int_number = strtol(argv[1], &endptr, 10); /* check the number for nonsense */ if ( int_number <= 0 ) return print_help(); unsigned long long long_num = int_number; int steps = 0; while ( long_num > 1 ) { long_num = ( long_num & 1 ) ? long_num * 3 + 1 : long_num / 2; printf("%llu\n", long_num); steps++; } printf("%s took %d steps\n", argv[1], steps); }