Bucles anidados en un modelo matemático para contar el número de operaciones

Estoy leyendo el libro 'Algoritmos - Cuarta edición' de Sedgewick y Wayne, y debo admitir que algunas partes del capítulo "Análisis de algoritmos" me confunden. Esto es probablemente causado por mi falta de conocimiento matemático ... ¡De todos modos!

En algún lugar del libro, hay un ejemplo de un programa en el que se dice que el bucle interno se ejecuta exactamente N (N-1) (N-2) / 6 veces. Aquí está:

    public static int count(int[] a) {
        int count = 0;

        for (int i = 0; i < a.length; i++) {
            for (int j = i + 1; i < a.length; j++) {
                for (int k = j + 1; k < a.length; k++) {
                    if (a[i] + a[j] + a[k] == 0) {
                        count++; 
                    } 
                }
            }
        }
        return count;
    }

Estoy familiarizado con la gran notación O, pero cuando se trata de contar el número exacto de operaciones en bucles, estoy perdido. Entiendo la parte N (N-1) (N-2), pero ¿por qué tenemos que dividir entre 6? ¿Cuál es la lógica detrás de esto?

Cualquier ayuda sería muy apreciada!

Respuestas a la pregunta(4)

Su respuesta a la pregunta