Не могу найти оптимальный алгоритм решения перебора массива с умножением (Важно чтобы работал быстро) Пример медленного решения: int d =5; for (int i = 1; i <=d ; i++) { for (int j = i; j <=d ; j++) { for (int k = j; k <d ; k++) { System.out.println(i+"*"+j+"*"+k+"="+(i*j*k)); } } } Вывод: 1*1*1=1 1*1*2=2 1*1*3=3 1*1*4=4 1*2*2=4 1*2*3=6 1*2*4=8 1*3*3=9 1*3*4=12 1*4*4=16 2*2*2=8 2*2*3=12 2*2*4=16 2*3*3=18 2*3*4=24 2*4*4=32 3*3*3=27 3*3*4=36 3*4*4=48 4*4*4=64 Если d = 100 это займет 0.5 секунды, d может быть 100 12 раз подряд. Еще бы было замечательным не перебирать с одинаковыми результатами. Может кто-то направит на алгоритм, инфу, книгу. Не знаю даже как обозвать данный метод чтобы погуглить.