Lo que tengo es lo siguiente, pero no me acaba de salir:
Código C++:
Ver original
#include <iostream> using namespace std; void leernumero(unsigned& n){ do{ cout << "Introduzca un numero n>0 para hallar su descomposición en factores primos: "; cin >> n; }while (n<=0); } unsigned factores(unsigned n){ unsigned cont=2; if (n>1) { while (n%cont==0){ if (n%cont!=0){ cont=cont+1; } n=n%cont; cout << cont <<"·"; } }else if (n==1){ cout << "1"; } } int main(){ unsigned n; leernumero(n); cout << "Los primos divisores de " << n <<" son: " << factores(n); return 0; }
En la línea 26 da el siguiente error: control reaches end of non-void function
Si alguien me puede ayudar se lo agradecería.
Saludos.
Lo he modificado y ahora tengo esto:
Código C++:
Ver original
#include <iostream> using namespace std; void leernumero(int& n){ do{ cout << "Introduzca un numero n>0 para hallar su descomposición en factores primos: "; cin >> n; }while (n<=0); } unsigned factores(unsigned n){ unsigned cont=2; if (n>1) { while (n%cont==0){ if (n%cont!=0){ cont=cont+1; } n=n/cont; cout << cont << "·"; } }else if (n==1){ cout << "1"; } return cont; } int main(){ int n; leernumero(n); cout << "Los primos divisores de " << n <<" son: "; factores(n); return 0; }
Ya no me da error pero no me resuelve bien el problema; por ejemplo en el caso de que introduzca el numero 10 sale:
Introduzca un numero n>0 para hallar su descomposición en factores primos: 10
Los primos divisores de 10 son: 2·
Hay termina el programa; creo que es por el return de la linea 27.
Muchas gracias.