diff options
| author | Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2021-04-06 12:23:00 -0400 |
|---|---|---|
| committer | Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2021-04-06 12:25:17 -0400 |
| commit | 983cd29f5a2c3d9cd1d6a9c4f343adcffe54f88c (patch) | |
| tree | 395f4bf2dfe097d9d09413ad1b805765b2e7eae0 /chains/chains.c | |
Diffstat (limited to 'chains/chains.c')
| -rw-r--r-- | chains/chains.c | 1389 |
1 files changed, 1389 insertions, 0 deletions
diff --git a/chains/chains.c b/chains/chains.c new file mode 100644 index 0000000..6f30e26 --- /dev/null +++ b/chains/chains.c @@ -0,0 +1,1389 @@ +#include <inttypes.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> + +#define MAX 900000000 + +uint32_t encoded[] = { + 136, 4253818, + 136, 4253813, + 271, 1779864, + 136, 4253816, + 136, 4253816, + 211, 3144285, + 136, 4253790, + 211, 3144278, + 181, 4130207, + 136, 4253798, + 136, 4253790, + 211, 3144284, + 211, 3144278, + 136, 4253828, + 136, 4253790, + 211, 3144283, + 211, 3144273, + 160, 3678256, + 211, 3144282, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 352, 495094, + 136, 4253825, + 211, 3144273, + 136, 4253822, + 136, 4253808, + 136, 4253790, + 136, 4253817, + 211, 3144278, + 211, 3144278, + 136, 4253790, + 211, 3144274, + 211, 3144273, + 211, 3144276, + 266, 2039181, + 136, 4253790, + 136, 4253816, + 136, 4253823, + 211, 3144282, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144280, + 211, 3144278, + 136, 4253828, + 136, 4253822, + 181, 4130207, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 211, 3144281, + 136, 4253827, + 211, 3144278, + 160, 3678256, + 211, 3144281, + 211, 3144278, + 211, 3144280, + 211, 3144277, + 211, 3144276, + 136, 4253790, + 136, 4253826, + 211, 3144277, + 211, 3144281, + 211, 3144281, + 211, 3144273, + 136, 4253822, + 211, 3144277, + 136, 4253790, + 352, 495094, + 136, 4253823, + 211, 3144280, + 211, 3144281, + 211, 3144282, + 266, 2039181, + 136, 4253790, + 136, 4253817, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 105, 2020434, + 211, 3144278, + 136, 4253825, + 136, 4253825, + 211, 3144273, + 211, 3144282, + 199, 3861209, + 136, 4253790, + 211, 3144275, + 211, 3144278, + 160, 3678256, + 113, 2166353, + 211, 3144277, + 211, 3144275, + 211, 3144282, + 136, 4253828, + 211, 3144280, + 211, 3144277, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 211, 3144273, + 136, 4253790, + 211, 3144275, + 211, 3144278, + 160, 3678256, + 113, 2166353, + 211, 3144277, + 211, 3144275, + 211, 3144282, + 136, 4253828, + 211, 3144280, + 211, 3144277, + 136, 4253790, + 136, 4253823, + 160, 3678256, + 136, 4253790, + 136, 4253826, + 211, 3144273, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253826, + 211, 3144273, + 211, 3144282, + 136, 4253823, + 211, 3144275, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144273, + 211, 3144282, + 136, 4253790, + 211, 3144275, + 211, 3144278, + 160, 3678256, + 211, 3144275, + 211, 3144277, + 211, 3144280, + 160, 3678256, + 211, 3144281, + 136, 4253790, + 211, 3144273, + 136, 4253790, + 211, 3144281, + 211, 3144277, + 211, 3144279, + 136, 4253828, + 211, 3144277, + 160, 3678256, + 211, 3144275, + 211, 3144277, + 136, 4253790, + 211, 3144276, + 211, 3144277, + 352, 495094, + 136, 4253823, + 160, 3678256, + 211, 3144277, + 211, 3144276, + 136, 4253790, + 211, 3144273, + 211, 3144281, + 136, 4253790, + 352, 495094, + 211, 3144278, + 136, 4253825, + 136, 4253825, + 211, 3144278, + 211, 3144283, + 211, 3144281, + 199, 3861206, + 136, 4253790, + 211, 3144281, + 211, 3144282, + 211, 3144273, + 211, 3144280, + 211, 3144282, + 136, 4253790, + 211, 3144283, + 136, 4253823, + 211, 3144282, + 181, 4130207, + 136, 4253790, + 211, 3144273, + 160, 3678256, + 211, 3144284, + 136, 4253790, + 136, 4253827, + 211, 3144278, + 211, 3144281, + 136, 4253823, + 211, 3144282, + 136, 4253823, + 160, 3678257, + 211, 3144277, + 136, 4253790, + 136, 4253823, + 160, 3678256, + 211, 3144282, + 211, 3144277, + 136, 4253822, + 211, 3144277, + 211, 3144280, + 136, 4253790, + 160, 3678256, + 266, 2039181, + 136, 4253790, + 136, 4253817, + 181, 4130207, + 211, 3144277, + 160, 3678256, + 136, 4253790, + 211, 3144277, + 211, 3144273, + 211, 3144275, + 181, 4130207, + 136, 4253790, + 211, 3144282, + 211, 3144277, + 211, 3144280, + 136, 4253826, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 211, 3144278, + 211, 3144274, + 211, 3144282, + 211, 3144273, + 136, 4253823, + 160, 3678256, + 211, 3144277, + 211, 3144276, + 136, 4253790, + 352, 495094, + 211, 3144280, + 211, 3144278, + 136, 4253826, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 136, 4253827, + 211, 3144280, + 211, 3144277, + 160, 3678257, + 136, 4253823, + 211, 3144278, + 136, 4253828, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 211, 3144277, + 211, 3144280, + 136, 4253826, + 136, 4253790, + 211, 3144273, + 211, 3144281, + 136, 4253790, + 352, 495094, + 211, 3144278, + 136, 4253825, + 136, 4253825, + 211, 3144278, + 211, 3144283, + 211, 3144281, + 199, 3861206, + 136, 4253790, + 136, 4253823, + 352, 495094, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 136, 4253827, + 211, 3144280, + 211, 3144277, + 160, 3678257, + 136, 4253823, + 211, 3144278, + 136, 4253828, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 211, 3144277, + 211, 3144280, + 136, 4253826, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 211, 3144277, + 160, 3678257, + 211, 3144277, + 160, 3678256, + 136, 4253798, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 160, 3678256, + 211, 3144277, + 273, 1867034, + 211, 3144282, + 136, 4253790, + 211, 3144282, + 211, 3144277, + 211, 3144280, + 136, 4253826, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 211, 3144278, + 160, 3678256, + 211, 3144277, + 136, 4253790, + 181, 4130207, + 211, 3144273, + 136, 4253825, + 352, 495094, + 136, 4253790, + 211, 3144278, + 352, 495094, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 136, 4253827, + 211, 3144280, + 211, 3144277, + 160, 3678257, + 136, 4253823, + 211, 3144278, + 136, 4253828, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 211, 3144277, + 211, 3144280, + 136, 4253826, + 266, 2039181, + 136, 4253790, + 136, 4253810, + 352, 495094, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 136, 4253827, + 211, 3144280, + 211, 3144277, + 160, 3678257, + 136, 4253823, + 211, 3144278, + 136, 4253828, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 211, 3144277, + 211, 3144280, + 136, 4253826, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 211, 3144278, + 211, 3144276, + 211, 3144276, + 136, 4253798, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 160, 3678256, + 211, 3144277, + 273, 1867034, + 211, 3144282, + 136, 4253790, + 211, 3144282, + 211, 3144277, + 211, 3144280, + 136, 4253826, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 105, 2020432, + 136, 4253790, + 211, 3144282, + 136, 4253823, + 136, 4253826, + 211, 3144277, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 136, 4253827, + 211, 3144280, + 211, 3144277, + 160, 3678257, + 136, 4253823, + 211, 3144278, + 136, 4253828, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 211, 3144277, + 211, 3144280, + 136, 4253826, + 136, 4253790, + 136, 4253827, + 136, 4253825, + 136, 4253828, + 211, 3144281, + 136, 4253790, + 136, 4253801, + 266, 2039181, + 136, 4253790, + 136, 4253817, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 211, 3144275, + 211, 3144278, + 160, 3678256, + 113, 2166353, + 211, 3144277, + 211, 3144275, + 211, 3144282, + 136, 4253828, + 211, 3144280, + 211, 3144277, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144273, + 211, 3144282, + 136, 4253790, + 160, 3678256, + 211, 3144278, + 136, 4253790, + 136, 4253826, + 211, 3144273, + 211, 3144282, + 211, 3144282, + 211, 3144277, + 211, 3144280, + 136, 4253790, + 211, 3144283, + 181, 4130207, + 211, 3144273, + 211, 3144282, + 136, 4253790, + 160, 3678257, + 211, 3144273, + 136, 4253825, + 136, 4253828, + 211, 3144277, + 136, 4253790, + 211, 3144278, + 352, 495094, + 136, 4253790, + 160, 3678256, + 136, 4253798, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 211, 3144281, + 211, 3144277, + 211, 3144279, + 136, 4253828, + 211, 3144277, + 160, 3678256, + 211, 3144275, + 211, 3144277, + 136, 4253790, + 211, 3144283, + 136, 4253823, + 136, 4253825, + 136, 4253825, + 136, 4253790, + 211, 3144273, + 136, 4253825, + 211, 3144283, + 211, 3144273, + 211, 3144284, + 211, 3144281, + 136, 4253790, + 211, 3144280, + 211, 3144277, + 211, 3144273, + 211, 3144275, + 181, 4130207, + 136, 4253790, + 136, 4253801, + 266, 2039181, + 136, 4253790, + 110, 4399499, + 211, 3144273, + 211, 3144283, + 211, 3144280, + 136, 4253790, + 273, 1867034, + 105, 2020432, + 136, 4253790, + 160, 3678256, + 136, 4253828, + 199, 3861209, + 199, 3861209, + 136, 4253825, + 211, 3144277, + 211, 3144281, + 136, 4253790, + 181, 4130207, + 211, 3144278, + 211, 3144283, + 136, 4253790, + 211, 3144273, + 211, 3144280, + 211, 3144277, + 136, 4253790, + 211, 3144284, + 211, 3144278, + 136, 4253828, + 136, 4253790, + 136, 4253827, + 211, 3144278, + 136, 4253828, + 160, 3678256, + 211, 3144275, + 211, 3144277, + 211, 3144281, + 136, 4253790, + 211, 3144278, + 160, 3678256, + 136, 4253790, + 211, 3144284, + 211, 3144278, + 136, 4253828, + 136, 4253790, + 211, 3144284, + 211, 3144278, + 136, 4253828, + 105, 2020429, + 211, 3144280, + 211, 3144277, + 136, 4253790, + 211, 3144281, + 211, 3144278, + 136, 4253790, + 211, 3144283, + 211, 3144273, + 211, 3144280, + 136, 4253826, + 136, 4253790, + 211, 3144278, + 105, 2020432, + 211, 3144278, + 136, 4253790, + 160, 3678256, + 211, 3144278, + 211, 3144282, + 136, 4253823, + 211, 3144275, + 211, 3144277, + 211, 3144281, + 136, 4253790, + 211, 3144284, + 211, 3144278, + 136, 4253828, + 136, 4253790, + 181, 4130207, + 211, 3144273, + 160, 3678257, + 211, 3144277, + 136, 4253790, + 211, 3144273, + 136, 4253790, + 211, 3144278, + 199, 3861206, + 136, 4253790, + 136, 4253790, + 181, 4130207, + 211, 3144278, + 136, 4253825, + 211, 3144276, + 136, 4253790, + 136, 4253828, + 136, 4253827, + 136, 4253790, + 136, 4253810, + 136, 4253790, + 160, 3678256, + 211, 3144277, + 211, 3144277, + 211, 3144276, + 136, 4253790, + 211, 3144282, + 211, 3144278, + 136, 4253790, + 136, 4253826, + 211, 3144273, + 136, 4253824, + 211, 3144277, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 136, 4253826, + 211, 3144277, + 211, 3144281, + 211, 3144281, + 211, 3144273, + 136, 4253822, + 211, 3144277, + 136, 4253790, + 211, 3144277, + 160, 3678257, + 211, 3144277, + 160, 3678256, + 136, 4253790, + 136, 4253825, + 211, 3144278, + 160, 3678256, + 136, 4253822, + 211, 3144277, + 211, 3144280, + 136, 4253790, + 136, 4253810, + 160, 3678256, + 136, 4253790, + 211, 3144273, + 211, 3144274, + 211, 3144281, + 211, 3144282, + 211, 3144280, + 211, 3144273, + 211, 3144275, + 211, 3144282, + 136, 4253790, + 211, 3144273, + 136, 4253825, + 136, 4253822, + 211, 3144277, + 211, 3144274, + 211, 3144280, + 211, 3144273, + 136, 4253790, + 211, 3144273, + 160, 3678256, + 211, 3144276, + 136, 4253790, + 211, 3144273, + 160, 3678256, + 211, 3144273, + 136, 4253825, + 211, 3144284, + 211, 3144281, + 136, 4253823, + 211, 3144281, + 136, 4253798, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 271, 1779864, + 211, 3144280, + 211, 3144275, + 181, 4130207, + 136, 4253823, + 136, 4253826, + 211, 3144277, + 211, 3144276, + 211, 3144277, + 211, 3144273, + 160, 3678256, + 136, 4253790, + 136, 4253827, + 211, 3144280, + 211, 3144278, + 136, 4253827, + 211, 3144277, + 211, 3144280, + 211, 3144282, + 211, 3144284, + 136, 4253798, + 136, 4253790, + 160, 3678256, + 211, 3144273, + 136, 4253826, + 211, 3144277, + 211, 3144276, + 136, 4253790, + 211, 3144273, + 352, 495094, + 211, 3144282, + 211, 3144277, + 211, 3144280, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 211, 3144273, + 160, 3678256, + 211, 3144275, + 136, 4253823, + 211, 3144277, + 160, 3678256, + 211, 3144282, + 136, 4253790, + 136, 4253809, + 211, 3144280, + 211, 3144277, + 211, 3144277, + 136, 4253824, + 136, 4253790, + 136, 4253826, + 211, 3144273, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253826, + 211, 3144273, + 211, 3144282, + 136, 4253823, + 211, 3144275, + 136, 4253823, + 211, 3144273, + 160, 3678256, + 136, 4253790, + 271, 1779864, + 211, 3144280, + 211, 3144275, + 181, 4130207, + 136, 4253823, + 136, 4253826, + 211, 3144277, + 211, 3144276, + 211, 3144277, + 211, 3144281, + 136, 4253790, + 211, 3144278, + 352, 495094, + 136, 4253790, + 136, 4253816, + 211, 3144284, + 211, 3144280, + 211, 3144273, + 211, 3144275, + 136, 4253828, + 211, 3144281, + 211, 3144277, + 136, 4253798, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 211, 3144273, + 136, 4253790, + 136, 4253827, + 211, 3144280, + 211, 3144278, + 136, 4253827, + 211, 3144277, + 211, 3144280, + 211, 3144282, + 211, 3144284, + 136, 4253790, + 181, 4130207, + 211, 3144277, + 136, 4253825, + 211, 3144276, + 136, 4253790, + 211, 3144274, + 211, 3144284, + 136, 4253790, + 211, 3144281, + 211, 3144278, + 136, 4253826, + 211, 3144277, + 136, 4253790, + 211, 3144273, + 136, 4253825, + 136, 4253822, + 211, 3144277, + 211, 3144274, + 211, 3144280, + 211, 3144273, + 136, 4253823, + 211, 3144275, + 136, 4253790, + 211, 3144281, + 211, 3144282, + 211, 3144280, + 136, 4253828, + 211, 3144275, + 211, 3144282, + 136, 4253828, + 211, 3144280, + 211, 3144277, + 211, 3144281, + 136, 4253798, + 136, 4253790, + 211, 3144281, + 136, 4253828, + 211, 3144275, + 181, 4130207, + 136, 4253790, + 211, 3144273, + 211, 3144281, + 136, 4253790, + 211, 3144278, + 211, 3144280, + 211, 3144276, + 211, 3144277, + 211, 3144280, + 211, 3144277, + 211, 3144276, + 136, 4253790, + 211, 3144278, + 211, 3144280, + 136, 4253790, + 160, 3678256, + 211, 3144278, + 211, 3144280, + 136, 4253826, + 211, 3144277, + 211, 3144276, + 136, 4253790, + 136, 4253822, + 211, 3144280, + 211, 3144278, + 136, 4253828, + 136, 4253827, + 211, 3144281, + 136, 4253798, + 136, 4253790, + 211, 3144273, + 160, 3678256, + 211, 3144276, + 136, 4253790, + 352, 495094, + 136, 4253823, + 211, 3144277, + 136, 4253825, + 211, 3144276, + 211, 3144281, + 266, 2039181, + 136, 4253790, + 136, 4253817, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 136, 4253827, + 211, 3144280, + 211, 3144278, + 136, 4253827, + 211, 3144277, + 211, 3144280, + 211, 3144282, + 211, 3144284, + 136, 4253798, + 136, 4253790, + 211, 3144282, + 211, 3144284, + 136, 4253827, + 136, 4253823, + 211, 3144275, + 211, 3144273, + 136, 4253825, + 136, 4253825, + 211, 3144284, + 136, 4253790, + 211, 3144275, + 211, 3144278, + 160, 3678256, + 211, 3144281, + 211, 3144282, + 211, 3144280, + 136, 4253828, + 211, 3144277, + 211, 3144276, + 136, 4253798, + 136, 4253790, + 211, 3144281, + 211, 3144282, + 211, 3144273, + 211, 3144282, + 211, 3144277, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144273, + 211, 3144282, + 136, 4253790, + 136, 4253822, + 136, 4253823, + 160, 3678257, + 211, 3144277, + 160, 3678256, + 136, 4253790, + 211, 3144282, + 211, 3144283, + 211, 3144278, + 136, 4253790, + 136, 4253827, + 211, 3144278, + 211, 3144281, + 136, 4253823, + 211, 3144282, + 136, 4253823, + 160, 3678257, + 211, 3144277, + 136, 4253790, + 160, 3678256, + 136, 4253828, + 136, 4253826, + 211, 3144274, + 211, 3144277, + 211, 3144280, + 211, 3144281, + 136, 4253790, + 273, 1867034, + 136, 4253790, + 211, 3144273, + 160, 3678256, + 211, 3144276, + 136, 4253790, + 211, 3144284, + 136, 4253798, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 211, 3144280, + 211, 3144277, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 211, 3144273, + 160, 3678256, + 136, 4253790, + 136, 4253823, + 160, 3678256, + 211, 3144282, + 211, 3144277, + 136, 4253822, + 211, 3144277, + 211, 3144280, + 136, 4253790, + 160, 3678256, + 136, 4253790, + 211, 3144281, + 211, 3144278, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144273, + 211, 3144282, + 136, 4253790, + 160, 3678256, + 273, 1867034, + 136, 4253790, + 303, 1522942, + 136, 4253790, + 211, 3144284, + 266, 2039181, + 136, 4253790, + 136, 4253810, + 211, 3144282, + 136, 4253790, + 211, 3144273, + 136, 4253825, + 211, 3144281, + 211, 3144278, + 136, 4253790, + 136, 4253826, + 211, 3144277, + 211, 3144273, + 160, 3678256, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144273, + 211, 3144282, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 211, 3144281, + 211, 3144277, + 211, 3144282, + 136, 4253790, + 211, 3144278, + 352, 495094, + 136, 4253790, + 160, 3678256, + 211, 3144273, + 211, 3144282, + 136, 4253828, + 211, 3144280, + 211, 3144273, + 136, 4253825, + 136, 4253790, + 160, 3678256, + 136, 4253828, + 136, 4253826, + 211, 3144274, + 211, 3144277, + 211, 3144280, + 211, 3144281, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 160, 3678256, + 211, 3144278, + 211, 3144282, + 136, 4253790, + 211, 3144274, + 211, 3144278, + 136, 4253828, + 160, 3678256, + 211, 3144276, + 211, 3144277, + 211, 3144276, + 136, 4253790, + 211, 3144273, + 211, 3144274, + 211, 3144278, + 160, 3678257, + 211, 3144277, + 266, 2039181, + 211, 3144271, + 136, 4253801, + 318, 838140, + 136, 4253790, + 110, 4399499, + 211, 3144278, + 136, 4253828, + 136, 4253822, + 181, 4130207, + 136, 4253825, + 211, 3144284, + 136, 4253790, + 211, 3144281, + 136, 4253827, + 211, 3144277, + 211, 3144273, + 136, 4253824, + 136, 4253823, + 160, 3678256, + 136, 4253822, + 136, 4253798, + 136, 4253790, + 136, 4253823, + 211, 3144282, + 136, 4253790, + 136, 4253823, + 211, 3144281, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 136, 4253827, + 211, 3144280, + 211, 3144278, + 136, 4253827, + 211, 3144277, + 211, 3144280, + 211, 3144282, + 211, 3144284, + 136, 4253790, + 211, 3144278, + 352, 495094, + 136, 4253790, + 181, 4130207, + 211, 3144273, + 160, 3678257, + 136, 4253823, + 160, 3678256, + 136, 4253822, + 136, 4253790, + 160, 3678256, + 211, 3144278, + 136, 4253790, + 136, 4253823, + 160, 3678256, + 352, 495094, + 136, 4253823, + 160, 3678256, + 136, 4253823, + 211, 3144282, + 211, 3144277, + 136, 4253825, + 211, 3144284, + 136, 4253790, + 136, 4253825, + 211, 3144273, + 211, 3144280, + 136, 4253822, + 211, 3144277, + 136, 4253790, + 211, 3144278, + 211, 3144280, + 136, 4253790, + 136, 4253823, + 160, 3678256, + 352, 495094, + 136, 4253823, + 160, 3678256, + 136, 4253823, + 211, 3144282, + 211, 3144277, + 136, 4253825, + 211, 3144284, + 136, 4253790, + 211, 3144281, + 136, 4253826, + 211, 3144273, + 136, 4253825, + 136, 4253825, + 136, 4253790, + 211, 3144277, + 136, 4253825, + 211, 3144277, + 136, 4253826, + 211, 3144277, + 160, 3678256, + 211, 3144282, + 211, 3144281, + 266, 2039181, + 136, 4253790, + 136, 4253810, + 211, 3144282, + 136, 4253790, + 211, 3144283, + 211, 3144273, + 211, 3144281, + 136, 4253790, + 136, 4253814, + 211, 3144282, + 211, 3144282, + 211, 3144278, + 136, 4253790, + 136, 4253816, + 211, 3144282, + 211, 3144278, + 136, 4253825, + 199, 3861209, + 136, 4253790, + 211, 3144283, + 181, 4130207, + 211, 3144278, + 136, 4253790, + 136, 4253822, + 211, 3144273, + 160, 3678257, + 211, 3144277, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 211, 3144273, + 273, 1867034, + 136, 4253823, + 211, 3144278, + 136, 4253826, + 136, 4253790, + 211, 3144278, + 352, 495094, + 136, 4253790, + 271, 1779864, + 211, 3144280, + 211, 3144275, + 181, 4130207, + 136, 4253823, + 136, 4253826, + 211, 3144277, + 211, 3144276, + 211, 3144277, + 211, 3144281, + 136, 4253790, + 136, 4253823, + 211, 3144282, + 211, 3144281, + 136, 4253790, + 160, 3678256, + 211, 3144273, + 136, 4253826, + 211, 3144277, + 136, 4253790, + 211, 3144274, + 211, 3144277, + 211, 3144275, + 211, 3144273, + 136, 4253828, + 211, 3144281, + 211, 3144277, + 136, 4253790, + 136, 4253823, + 211, 3144282, + 136, 4253790, + 211, 3144273, + 136, 4253827, + 136, 4253827, + 211, 3144277, + 211, 3144273, + 211, 3144280, + 211, 3144281, + 136, 4253790, + 211, 3144273, + 211, 3144281, + 136, 4253790, + 271, 1779864, + 273, 1867034, + 136, 4253823, + 211, 3144278, + 136, 4253826, + 136, 4253790, + 116, 2711150, + 136, 4253790, + 211, 3144278, + 352, 495094, + 136, 4253790, + 271, 1779864, + 211, 3144280, + 211, 3144275, + 181, 4130207, + 136, 4253823, + 136, 4253826, + 211, 3144277, + 211, 3144276, + 211, 3144277, + 211, 3144281, + 136, 4253755, + 202, 4806021, + 185, 7553325, + 136, 4253790, + 136, 4253814, + 160, 3678256, + 136, 4253790, + 211, 3144282, + 181, 4130207, + 211, 3144277, + 136, 4253790, + 136, 4253816, + 136, 4253827, + 181, 4130207, + 211, 3144277, + 211, 3144280, + 211, 3144277, + 136, 4253790, + 211, 3144273, + 160, 3678256, + 211, 3144276, + 136, 4253790, + 105, 2020434, + 211, 3144284, + 136, 4253825, + 136, 4253823, + 160, 3678256, + 211, 3144276, + 211, 3144277, + 211, 3144280, + 266, 2039181, + 136, 4253790, + 136, 4253818, + 136, 4253813, + 271, 1779864, + 136, 4253816, + 136, 4253816, + 211, 3144285, + 136, 4253803, + 181, 4130207, + 136, 4253801, + 247, 5973577, + 136, 4253820, + 136, 4253801, + 247, 5973577, + 136, 4253820, + 105, 2020433, + 136, 4253820, + 352, 495094, + 247, 5973577, + 211, 3144275, + 136, 4253824, + 136, 4253801, + 160, 3678256, + 341, 473526, + 136, 4253820, + 136, 4253825, + 136, 4253800, + 160, 3678256, + 341, 473526, + 136, 4253820, + 136, 4253826, + 105, 2020432, + 247, 5973577, + 247, 5973577, + 105, 2020433, + 341, 473526, + 105, 2020432, + 136, 4253820, + 211, 3144280, + 136, 4253800, + 136, 4253803, + 352, 495094, + 136, 4253825, + 181, 4130208, + 136, 4253767, +}; + + +uint32_t steps(uint32_t n) +{ + uint32_t i = 0; + while (n != 1) { + if (n % 2 == 1) + n = 3 * n + 1; + else + n = n / 2; + i++; + } + return i; +} + +int main(void) +{ + uint32_t i, j, goal, count; + + for (i = 0; i < sizeof(encoded); i += 2) { + goal = encoded[i]; + count = encoded[i + 1]; + for (j = 1; j < MAX; j++) { + if (steps(j) == goal) { + count--; + } + if (count == 0) { + putchar(j - (MAX - 0xff)); + fflush(stdout); + break; + } + } + } + putchar('\n'); + + return 0; +} |