A simple algorithm for the evaluation of discrete Fourier transforms (DFT) and discrete cosine transforms (DCT) is presented. This approach, based on the divide and conquer technique, achieves a substantial decrease in the number of additions when compared to currently used FFT algorithms (30% for a DFT on real data, 15% for a DFT on complex data and 25% for a DCT) and keeps the same number of multiplications as the best known FFT algorithms. The simple structure of the algorithm and the fact that it is best suited for real data (one does not have to take a transform of two real sequences simultaneously anymore) should lead to efficient implementations and to a wide range of applications.