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.