If I take a discrete Fourier transform of $\{ c_1, c_2, \ldots, c_n\}$ where $n$ is prime, I am rather limited in the FFT algorithms available to me and their performance. Additionally, having mixed-radix FFT algorithms and prime-length FFT algorithms, plus the code necessary to determine which to use, increases my code size which is a limiting factor.
Suppose $n$ is prime and I decide to, instead, take the discrete Fourier transform of $\{ c_1, c_2, \ldots, c_n, 0\}$ so that, now, the length of the data is no longer prime. I know that the "picture" I get will be more smooth as compared to the true DFT of the original data.
Is there any way to zero-pad the original data slightly, perform a FFT, and then reverse the effects of the zero-padding afterwards? By that, I mean the length of the output list should be $n$, not $n + 1$. I do not expect to obtain precisely the same result from the $n + 1$ padded FFT as with the original $O(n^2)$ DFT. I understand it is practically impossible to reverse the smoothing affect of the padding.
Summary: I can zero-pad my data so it has a non-prime length, but then the result of my FFT has the wrong length, and the values on the indices don't match the true DFT. I can't just drop the last element of my FFT result, I need to something more "involved". What post-processing can I do to my zero-padded data so that it looks more like the original DFT, and has the same length?