Determining a polynomial function based off numerous conditions

Find the polynomial function f(x) of the least degree that all coefficients of f are integers, all roots of f are integers, f(0) = -1 and f(3) = 128. Write f(x) as a polynomial in standard form.

The work I have done so far is figuring out that it is impossible to have a working function of a degree of 2 since there will be non-integer roots with anything other than x^2 -1, which clearly does not work.

I moved on to a degree of 3 by saying 27a + 9b + 3c = 129, which turns into 9a + 3b + c = 43. I got stuck here. Somebody told me I should solve the problem in trinary, but I was unsure how to proceed with that suggestion.
How would one go about this problem?

Re: Determining a polynomial function based off numerous conditions

Find the polynomial function f(x) of the least degree that all coefficients of f are integers, all roots of f are integers, f(0) = -1 and f(3) = 128. Write f(x) as a polynomial in standard form.

The work I have done so far is figuring out that it is impossible to have a working function of a degree of 2 since there will be non-integer roots with anything other than x^2 -1, which clearly does not work.

I moved on to a degree of 3 by saying 27a + 9b + 3c = 129, which turns into 9a + 3b + c = 43. I got stuck here. Somebody told me I should solve the problem in trinary, but I was unsure how to proceed with that suggestion.
How would one go about this problem?

Two notes here:
1) Dividing 9a + 3b + c = 43 by 9 gives some restrictions on b and c. Can this even be done?

2) f(0) = - 1 is one root. But it might also be a double root. You need to check this case as well.