Descomposición en producto de primos

Pablo Mateo Segura

/* Este programa realiza la descomposición en producto
 de primos de un número cualquiera */

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

int es_primo(int x);

int main()
{
 int numero, n, m;

 cout<<"Introduce un numero: ";
 cin>>numero;

if(es_primo(numero)==1)
 {
 cout<<"El numero introducido es primo. \n";
 cout<<"Su descomposicion es 1 x "<<numero;
 }

else
 {
 cout<<"\nSu descomposicion en producto de primos es: ";
 cout<<" 1";

 for(n=2;n<numero;n++)
 {
  if(es_primo(n)==1)
  {
   for(m=n;m<=numero;m=m*n)
    {
     if(numero%m==0)
       cout<<" x "<<n;}
    }
  }

}
 cout<<endl<<endl;
 return 0;
}

int es_primo(int x)
{
 int i;
 for(i=2; i<=sqrt(x); i++)
 {
 if(x%i==0)
 return 0;
 }
 return 1;
}
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Una respuesta a Descomposición en producto de primos

  1. Observa detalle del bucle en m, donde la condición debe ser <=, de lo contrario en los cuadrados perfectos no te haría bien la descomposición.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s