What is the advantage of sparse autoencoder than the usual autoencoder (the number of nodes in the hidden layer is less than the number of inputs)? C++ : What is the most efficient way to compute all the factors of a number in less than O(n) time?