diff options
| author | Mr. Sam <samuel@yakubos.org> | 2026-07-19 23:40:53 +0100 |
|---|---|---|
| committer | Mr. Sam <samuel@yakubos.org> | 2026-07-19 23:40:53 +0100 |
| commit | 536f57988cde7fb22e52b3c75b3986cd0a457e00 (patch) | |
| tree | ca7b6b44dfba2df0655848a471a24bd714540b2d /main.c | |
Remade because I kinda deleted the old, perfect version
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -0,0 +1,29 @@ +#include <stdio.h> +#include <stdlib.h> + +void PrintHelp(void) { + printf("Usage: collatz <number>" + "\nMade by samuel@yakubos.org\n\n"); +} + +int main(int argc, char *argv[]) { + if ( argc < 2 || argc > 2) { + PrintHelp(); + return 1; + } + char *endptr; + long int num; + int steps = 0; + num = strtol(argv[1], &endptr, 10); + + printf("%li\n", num); + while ( num > 1 ) { + num = ( num & 1 ) ? num * 3 + 1 : num / 2; + printf("%li\n", num); + steps++; + } + + printf("%s took %d steps\n", argv[1], steps); + +} + |