Вот некоторые ошибки или улучшения, которые я заметил:
Добавлен iostream и используется пространство имен std:
#include <cmath>
#include <iostream>
using namespace std;
Изменено pow(k,2)
на k * k:
a[k]=((3*(k*k))-k)/2;
b[k]=((3*(k * k))+k)/2;
Добавить символ умножения в p[n]
назначение:
p[n] = pow(-1.0,k-1) * (pentagon(n-a[k]) + pentagon(n-b[k]));
Метод pentagon
должен возвращать значение, чтобы использовать его в приведенном выше выражении.