diff options
author | Thomas Voss <thomasvoss@live.com> | 2021-10-29 23:02:39 +0200 |
---|---|---|
committer | Thomas Voss <thomasvoss@live.com> | 2021-10-29 23:02:39 +0200 |
commit | e7c9108b95e39d7ea5a29ae06d619c4727f11027 (patch) | |
tree | 237261eef3afd0720be77dbcbb9599fa66a24b67 /2015/04 |
Initial commit
Diffstat (limited to '2015/04')
-rw-r--r-- | 2015/04/.gitignore | 1 | ||||
-rw-r--r-- | 2015/04/Makefile | 7 | ||||
-rw-r--r-- | 2015/04/input | 1 | ||||
-rw-r--r-- | 2015/04/puzzles.c | 35 |
4 files changed, 44 insertions, 0 deletions
diff --git a/2015/04/.gitignore b/2015/04/.gitignore new file mode 100644 index 0000000..60d075d --- /dev/null +++ b/2015/04/.gitignore @@ -0,0 +1 @@ +puzzle-[12] diff --git a/2015/04/Makefile b/2015/04/Makefile new file mode 100644 index 0000000..10ec8f9 --- /dev/null +++ b/2015/04/Makefile @@ -0,0 +1,7 @@ +all: + ${CC} ${CFLAGS} -lmd -DINPUT=\"$$(cat input)\" -o puzzle-1 puzzles.c + ${CC} ${CFLAGS} -lmd -DINPUT=\"$$(cat input)\" -DPART2 -o puzzle-2 puzzles.c + +.PHONY: clean +clean: + rm -f puzzle-[12] diff --git a/2015/04/input b/2015/04/input new file mode 100644 index 0000000..bf3e46f --- /dev/null +++ b/2015/04/input @@ -0,0 +1 @@ +bgvyzdsv diff --git a/2015/04/puzzles.c b/2015/04/puzzles.c new file mode 100644 index 0000000..22833a2 --- /dev/null +++ b/2015/04/puzzles.c @@ -0,0 +1,35 @@ +#include <sys/types.h> + +#include <md5.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#define BUFFER 128 +#ifdef PART2 + #define ZEROS "000000" + #define NUM_ZEROS 6 +#else + #define ZEROS "00000" + #define NUM_ZEROS 5 +#endif + +int +main(void) +{ + unsigned int i = 0; + char buffer[MD5_DIGEST_STRING_LENGTH], digest[BUFFER]; + MD5_CTX ctx; + + do { + snprintf(digest, BUFFER, INPUT "%u", i); + + MD5Init(&ctx); + MD5Update(&ctx, (uint8_t *) digest, strlen(digest)); + MD5End(&ctx, buffer); + } while (strncmp(buffer, ZEROS, NUM_ZEROS) && ++i); + + printf("%u\n", i); + return EXIT_SUCCESS; +} |