Hola buenas, tengo que realizar este programa con procedimientos y funciones y diseño descendente.
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.