Buenas a todos, tengo un problema al ejecutar el código de un programa, resulta que se queda colgado y dice "Factorizar.exe" dejó de funcionar, y no tengo ni idea de por qué, ya que no veo nada en el código mal . El enunciado del ejercicio es el siguiente:
- Descomponer un número entero en sus factores primos.
Y mi solución esta:
#include<stdio.h>
#include<stdlib.h>
int Factor(int a){
int b=2;
while (a%b!=0) b++;
return (b);
}
int main(void){
int x,y,cociente;
printf("Introduzca un numero entero: ");
scanf("%d",x);
y=Factor(x);
while(y>1){
printf("%d\n",y);
cociente=x/(Factor(x));
y=Factor(cociente);
}
system("pause");
return 0;
}
Puesto que todavía no sabemos hacer que una función devuelva más de un valor, he creado una función que me devuelve el primer factor primo, y con un bucle la voy llamando varias veces, cambiando el valor del parámetro de entrada por el siguiente cociente, hasta que el factor que me devuelva sea igual o menor a 1.
¿Qué problema hay? Seguramente esté en el código... :|
Un saludo y gracias por adelantado.
- Descomponer un número entero en sus factores primos.
Y mi solución esta:
#include<stdio.h>
#include<stdlib.h>
int Factor(int a){
int b=2;
while (a%b!=0) b++;
return (b);
}
int main(void){
int x,y,cociente;
printf("Introduzca un numero entero: ");
scanf("%d",x);
y=Factor(x);
while(y>1){
printf("%d\n",y);
cociente=x/(Factor(x));
y=Factor(cociente);
}
system("pause");
return 0;
}
Puesto que todavía no sabemos hacer que una función devuelva más de un valor, he creado una función que me devuelve el primer factor primo, y con un bucle la voy llamando varias veces, cambiando el valor del parámetro de entrada por el siguiente cociente, hasta que el factor que me devuelva sea igual o menor a 1.
¿Qué problema hay? Seguramente esté en el código... :|
Un saludo y gracias por adelantado.