public static void main(String[] args) {

        popula_f();

        HashMap<Integer, ArrayList<Tripla>> mapa = new HashMap<Integer, ArrayList<Tripla>>();

        // O(N^3)
        for (int a = 1; a <= N; a++) {
            for (int b = a; b <= N; b++) {
                for (int c = b; c <= N; c++) {
                    int r = f(a) + f(b) + f(c);
                    ArrayList<Tripla> lista = mapa.get(r);
                    if (lista == null) {
                        lista = new ArrayList<Tripla>();
                    }
                    lista.add(new Tripla(a, b, c));
                    mapa.put(r, lista);
                }
            }
        }

        int total = 0;
        for (Integer r : mapa.keySet()) {
            ArrayList<Tripla> lista = mapa.get(r);
            int x = lista.size();
            if (x > 1) {
                total += x * (x - 1) / 2;
                for (Tripla tripla : lista) {
                    System.out.println(String.format("f(%d) + f(%d) + f(%d) = %d",
                            tripla.a, tripla.b, tripla.c,
                            f(tripla.a) + f(tripla.b) + f(tripla.c)));
                }
            }
        }

        System.out.println("\nTotal = " + Integer.valueOf(total).toString() + " soluções não-triviais.");
    }