Estoy haciendo un programa en el cual introduzco un numero entero positivo y el programa imprime en pantalla los factores primos de dicho numero. En el programa uso dos funciones: una que calcula los factores del numero y otra que comprueba si son primos. Aqui os las pongo.
void calcular_factores(int numero) //Busca e imprime los factores primos
{
cout << "1" << endl;
for(int i=2; i<= numero/2; i++)
{
if((numero % i) == 0)
{
if(comprobar_primo(i) == 1)
cout << i << endl;
}
}
}
int comprobar_primo(int factor) //Comprueba si un factor es primo
{
int aux = 1;
for(int i=2; (i < factor/2) && (aux == 1) ; i++)
{
if((factor % i) == 0)
aux = 0;
}
return aux;
}
El programa funciona bien (por lo que he probado hasta ahora) excepto con los numeros que son multiplos de cuatro, pues cuatro me aparece como si fuera un factor primo (y no lo es ). Seguro que es una tonteria, pero no encuentro el problema.
Un saludo