Descomposición en factores primos

Eduardo Fernández González

/* Este programa determina si un número es primo o no y, en caso de que no lo sea, calcula la descomposicion en factores primos de dicho número si asi lo requiere el usuario */

/*NOTA: cuando pregunta al usuario si desea calcular la descomposicion en factores primos del número dado, para decir que NO, sirve cualquier número distinto de 1, no solo el 0. */

/*Para la primera parte del programa, la de calcular si el número es primo o no, me he basado en el programa que hemos visto en clase*/

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

using namespace std;

int main()
{
int n, factores;
int primo, cociente;
int j,i;
double x;
cout << “Introduce un entero mayor o igual que 1: “;
cin >> n;
cout << endl << endl ;

if (n % 2 == 0)
{
if (n == 2) {
cout <<“El numero ” << n << ” es primo\n\n”;
primo = 1;} else {
cout << “El numero “<< n << ” no es primo \n\n\n”;
primo = 0;}
}
else
{
x = sqrt(n);
i = 3;
while ((i <= x) && (n % i != 0))
{i = i + 2;}
if (i > x)
{cout << “El numero “<< n << ” es primo \n\n”;
primo = 1;}
else
{cout <<“El numero ” << n << ” no es primo \n\n\n”;
primo = 0;}
}

if (primo==0)
{
cout << “Calcular los factores primos de ” <<n <<“? (Si=1) (No=0): “;
cin >> factores ;
if (factores == 1)
{
cout << “\n\n\nEl numero ” <<n << ” descompuesto en factores primos es: “;
cociente = n;

for(j=2;j<=n/2;j++)
{
while(cociente%j==0)
{cout <<j <<“x”;
cociente = cociente/j;}
if(cociente<j)break;
}

cout << “1” <<endl;
}
}
cout << endl << endl;
return 0;
}

Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Una respuesta a Descomposición en factores primos

  1. Observa los cambios y mejoras introducidas en el bucle de descomposición en primos.

Responder

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