HoRRoR,спсибо конечно, но скорее всего следующее число получается из предыдущих. Насчет возможности/невозможности у меня была мысль - если бы можно было вначале уменьшать получаемые результаты, пока они >= искомого, потом пытаться увеличить, пока они <= искомого. А насчет когда из одного числа получается другое - создаем массив или список или дерево чисел, получаемых на каждом шаге, причем каждое An+1=An#Ak, где 0<k<n. Но все это только идеи
Добавлено позже:
Задача С вродь решается так?
для каждого столбца и строки находится сумма их чисел - тож два двумерных массива (числа длинные и записываются в столбик), далее эти массивы сортируются. Потом вычеркиваются последние строки в одном - до тех пор, пока это выгодно. Далее пробуем удалить строки из второго массива до тех пор, пока это выгодно. Потом по одной возвращаем строки в первом и пробуем удалить дополнительные строки во втором - сравнивая результаты с минимальным полученным.
Остается определить оптимальную величину индексов массивов.