Ваш код может выйти за границы массивы.
В вашем коде размеры выделенной область жестко заданы, но, насколько я понял из условия задания, область расширяется или сужается при другом размере матрицы.
К тому же имелось в виду найти искомую сумму для каждой пары (i,j), а не только для заданной.
Еще алгоритм можно оптимизировать, если сначала пройтись по всему массиву и обнулить составные (не простые) числа. Иначе у вас будет очень много вызовов функции prime().