Collatz's Conjecture.
11:28pm. I wrote a C program for fun that shows you the Collatz's conjecture. Enjoy.
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <inttypes.h>
// Returns true if even and false if odd.
bool isEven(uint32_t number);
// Next number according to Collatz conjecture.
uint32_t collatz(uint32_t number);
int main(int argc, char* argv[])
{
if (argc < 2) return 1;
uint32_t steps = 0;
uint32_t seed = (uint32_t) atoi(argv[1]);
uint32_t c = 0;
while (seed != 1)
{
c = collatz(seed);
printf("current collatz: %lu\n", c);
seed = c;
steps++;
}
printf("Total operations performed: %lu\n", steps);
return 0;
}
bool isEven(uint32_t number)
{
return (number % 2 == 0);
}
uint32_t collatz(uint32_t number)
{
if (number == 1) return 1;
else if (isEven(number)) return number/2;
return number*3+1;
}