[ Foro de C++ ]

4.7.2 C++ Curso

08-Feb-2016 19:16
Invitado (AprendiendoC++)
1 Respuestas

Del curso de Aprender a programar tengo el siguiente ejercicio de escribir un número como sus factores primos.
Este es mi codigo:


#include <iostream>
#include <math.h>
using namespace std;

int main(){
	
	int n,p,s,r;
	
	cin >> p ;
	
	cout << p << "=";
	
	for (n=2; n<=p; n++){
		for (s=p; s>=1; s--){
		r=pow(n,s);
		if (p%r==0){
			cout << n <<"x";
			p=p/n;
			
			}	
		}	
	}
}


Cosas que me gustaría mejorar:
Quitar la x final del ultimo divisor, Ej: 60=2x2x3x5x
Si el número es primo que lo diga el programa.

Como puedo hacer esto? Gracias de antemano


15-Feb-2016 00:25
Nacho Cabanes (+84)

Imagino que te refieres a este ejercicio:

(4.7.2) Crear un programa que descomponga un número (que teclee el usuario) como producto de su factores primos. Por ejemplo, 60 = 2 · 2 · 3 · 5

http://aprendeaprogramar.com/mod/resource/view.php?id=491

Hay dos soluciones sencillas:

- Anadir 1 al final, de modo que tu resultado quedaría 60=2x2x3x5x1

- No poner signos de multiplicación, con lo que tu resultado quedaría 60=2 2 3 5 1

Una de las soluciones elegantes y sencillas es usar una variable booleana, para escribir "x n" excepto si se trata del primer divisor, y, en ese caso, escribes sólo "n".






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)