This paper presents an algorithm for computing the fast Fourier transform, based on a method proposed by Cooley and Tukey. As in their algorithm, the dimension

of the transform is factored (if possible), and

elementary transforms of dimension

are computed for each factor

of

. An improved method of computing a transform step corresponding to an odd factor of

is given; with this method, the number of complex multiplications for an elementary transform of dimension

is reduced from

to

for odd

. The fast Fourier transform, when computed in place, requires a final permutation step to arrange the results in normal order. This algorithm includes an efficient method for permuting the results in place. The algorithm is described mathematically and illustrated by a FORTRAN subroutine.