#!/usr/bin/env cscript #include #include #include #define ALPHABET "ABCDEFGHIJKLMNOPQRSTUVWXYZ" int main(int argc, char *argv[]) { // 728 int value, index, degree; const char *target_address = "AAZ", address[1 + 3]; char *needle; for (needle = target_address, index = 0; *needle != '\0'; needle++) { index *= strlen(ALPHABET); index += 1 + strchr(ALPHABET, *needle) - ALPHABET; } printf("%s -> %d\n", target_address, index); value = index; for (degree = log(index) / log(strlen(ALPHABET)), index = 0, needle = address; index <= degree; index++) { printf("%d\n", value % (int)(1 + pow(1 + strlen(ALPHABET), (degree - index))) % (strlen(ALPHABET))); } printf("%d -> %s\n", index, address); }