Iterative constant modulus algorithms have been used to blindly separate and retrieve interfering constant modulus signals impinging on an antenna array. These algorithms have several well-known but basically unsolved deficiencies. In this paper, we present an algorithm to analytically compute the solution to the underlying constant modulus (CRI) factorization problem. With this new approach, if is possible to detect the number of CM signals present in the channel, and to retrieve all of them exactly, rejecting other, non-CM signals. Only a modest amount of samples are required. The algorithm is robust in the presence of noise, and is tested on real data, collected from an experimental set-up.<>