Factores primeros

kibo05
13 de Abril del 2005
Hola a todos!
Necsitaria un programita que pida un valor al usario y lo descomponga en sus factores primeros.Por ejemplo, si el valor es 36 decir que sus factores primeros son 2 y 3.
GRACIAS!!

Noel Solw
13 de Abril del 2005
Supongo que tu te refieres a los factores "primos".
Te envio un pograma que hace lo que pides.
Es necesario fijarse en algunos detalles :

[a] : 1 no es un numero primo y por consiguiente np figura entre los factores.
[b] : no esta claro que pasa cuando el numero mismo es primo, como 13, por ejemplo. Yo decidi introducir a 13 entre los factores primos, si no esta bien corrige la linea que dice for(int i = 3; i <= n;i += 2)
por for(int i = 3;i <n;i+=2)


// program factores.
// escrito en borland c++ - ver 4.5

#include <iostream.h>
#include <iomanip.h>
#include <math.h>

int Prime(int x)
{
if(x == 1)
return 0;
if(x == 2)
return 1;
for(int i = 3;i <= sqrt(x);i += 2)
if(x % i == 0)
return 0;
return 1;
} // PRIME

int main()
{
for(int n;;)
{
cout << "entre un numero, 0 para salir --> ";
cin >> n;
if(!n)
break;
cout << endl << "los factores primos son : ";
if(n % 2 == 0)
cout << setw(3) << 2;
for(int i = 3; i <= n;i += 2)
if(n % i == 0 && Prime(i))
cout << setw(3) << i;
cout << endl << endl;
}
cout << endl << "end of program - good bye ! ! !" << endl;
return 0;
}