Programación General > C/C++
Descomponer un numero en sus factores
Vndecid:
Hola a todas los de la comunidad SoloCodigo les queria preguntar alfgo muy simple que hace tiempo me aqueja en C que es la descomposiocn de un numero en sus factrores.
Ejemplo:
tengo elk numero 405 y quiero tener el 4 el 0 y el 5 por separado
Me dijeron que se podia tomar el numero como char pero no se como puedo pasarlo a un vector de enteros despues para podes sumarlos restarlos y trabajar aritmeticamente.
Alguien sabe como es esto ??? (Creo que se llama parsear)
Desde ya muchas gracias.
Claudisimo:
Antes de responder, diré algo 0 aporte: un programa generalmente se puede hacer de muchas formas distintas, recuerda que la idea es siempre ser lo mas óptimo posible. Sin ofender, pero eso de transformar los numeros a alfanumericos para trabajar de una forma muy fácil con ellos lo considero flojera. Los programadores tienen que generar un pensamiento algorítmico, y proponer soluciones tan poco formuladas y poco óptimas no hace mas que hacerles daño y retrasarlos. Te lo digo con todo el respeto del mundo, espero no haberte ofendido. Si es así, disculpame.
Ahora, volviendo al tema, te recomiendo declarar las variables, sacar el módulo de 405 sobre 10, eso lo guardas en una variable, después divides el numero por 10, sacas de nuevo el módulo y así hasta que ya no te queden factores. ¿Se entiende?
m0skit0:
Aclararos a los dos que eso no es sacar factores, sino los dígitos que lo componen. Los factores son aquellos números que multiplicados entre sí dan un número, por ejemplo, factores de 10 = 2 x 5, factores de 11 = no tiene, es primo.
Salud
Vndecid:
--- Cita de: "Claudisimo" ---Antes de responder, diré algo 0 aporte: un programa generalmente se puede hacer de muchas formas distintas, recuerda que la idea es siempre ser lo mas óptimo posible. Sin ofender, pero eso de transformar los numeros a alfanumericos para trabajar de una forma muy fácil con ellos lo considero flojera. Los programadores tienen que generar un pensamiento algorítmico, y proponer soluciones tan poco formuladas y poco óptimas no hace mas que hacerles daño y retrasarlos. Te lo digo con todo el respeto del mundo, espero no haberte ofendido. Si es así, disculpame.
Ahora, volviendo al tema, te recomiendo declarar las variables, sacar el módulo de 405 sobre 10, eso lo guardas en una variable, después divides el numero por 10, sacas de nuevo el módulo y así hasta que ya no te queden factores. ¿Se entiende?
--- Fin de la cita ---
JAJA Todo bien Claudisimo es que yo ya conocia esa forma de hacer el ejercicio pero ESA de dividir por diez me parecia poco optima que pasar el char a un vetor :D
m0skit0:
Puedes convertir directamente la cadena de caracteres a cadena de números. Sólo es cuestión de interpretar el contenido:
--- Código: C ---char* numero = "407";int i,cont; cont = strlen(numero);for (i=0;i<cont;i++) printf("%d ",numero[i] - 0x30); Saludos
Navegación
[#] Página Siguiente
Ir a la versión completa