M: pxp  symmetric p.d. matrix with unit diagonals

n:  number much smaller than p

Want a nonrandom nxp matrix X such that X'X is 
close to M element-wise.  If n gets larger, hopefully 
difference gets smaller.  

I have a no so good method. Get the eigendecomposition 
M = D'VD, and rearrange the diagonals of V in decreasing order 
and so the rows of D. Take only the first n  rows of D
as X. This method works only if the eigenvalues decrease 
very fast.

Any input is appreciated. Thanks a lot!