plduhoux
2/23/2018 - 6:45 PM

caesarBoxCipherEncoding2

int caesarBoxCipherEncoding2(String message) {
    int res = 0;
    for (int i = 2; i < message.length(); i++) {
        if (message.length() % i != 0) continue;
        if (message.equals(caesarBox(caesarBox(message, i), i))) res++;
    }
    return res;
}

String caesarBox(String a, int n) {
    String res = "";
    for (int i = 0; i < a.length(); i++) {
        res += a.charAt((i % n) * (a.length() / n) + i / n);
    }
    return res;
}