Factorización de un entero

Mientras respondía a otro, me topé con la pregunta de cómo podría encontrar todos los factores de un número entero.sin laCaja de herramientas de matemáticas simbólicas.

Por ejemplo:

factor(60)

devoluciones:

 2     2     3     5
unique(factor(60))

Por lo tanto, devolvería todos los factores primos,"1" desaparecido.

 2     3     5

Y estoy buscando una función que devolvería todos los factores (1 yel número en sí No son importantes, pero estarían bien.

Salida prevista parax = 60:

 1     2     3     4     5     6    10    12    15    20    30    60     

Se me ocurrió esa solución bastante voluminosa, además de que probablemente podría ser vectorizada, ¿no hay alguna solución elegante?

x = 60;

P = perms(factor(x));
[n,m] = size(P);
Q = zeros(n,m);
for ii = 1:n
    for jj = 1:m
        Q(ii,jj) = prod(P(ii,1:jj));
    end
end

factors = unique(Q(:))'

También creo que esta solución fallará para ciertos números grandes, porque las permanentes requieren una longitud vectorial <11.

Respuestas a la pregunta(3)

Su respuesta a la pregunta