Sera que uso Dev ya que el programa no se detiene a mostrarme los numeros compila bien y todo,pero no me muestra nada de lo rapido que se sale
Además surge una duda, al introducir 2,3,7,0 da como primos 3,7 .... ¿y el 2?.
Para que tengas otro enfoque en el siguiente código:
* se pide al usuario que introduzca previamente el total de números a ingresar.
* Como ordenación he usado el método burbuja.
* Guardo los números primos en un arrray, de tamaño el número de primos que hay, por si tuviera que usarlos posteriormente para otra cosa.#include <iostream>
#include <cstdlib>
using namespace std;
void burbuja(int a[], int n){
int indiceintercambio, j,i;
i=n-1;
while(i>0)
{
indiceintercambio=0;
for(j=0; j<i; j++)
if(a[j]>a[j+1])
{
int aux = a[j];
a[j]=a[j+1];
a[j+1]=aux;
indiceintercambio=j;
}
i = indiceintercambio;
}
}
int primo(int n){
int res;
if(n==1) return false;
for(int i=2; i < n; i++){
res = n % i;
if(res==0) return false;
}
return true;
}
int main(){
bool primos = false;
int cont = 0,n;
cout << "Indique el total de numeros: ";
cin >>n;
int numero[n],temp[n];
for(int j=0;j<n;j++){
cout << "Introduzca numero " << j+1 <<": ";
cin >> numero[j];
}
cout << "Desordenados: ";
for(int k=0;k<n;k++){
primos = primo(numero[k]);
if(primos==true) {
temp[cont]= numero[k];
cout << temp[cont] <<" ";
cont++;
}
}
cout << endl << "Hay " << cont << " numeros primos"<<endl;
cout << endl<< endl;
int num_primo[cont];
for(int k=0;k<cont;k++){
num_primo[k]=temp[k];
}
cout << endl<< "Ordenados: ";
burbuja(num_primo,cont);
for(int k=0;k<cont;k++){
cout << num_primo[k] <<" ";
}
cout << endl;
system ("pause");
return 0;
}
Saluditos!.P.D: Cámbiate de Dev a Code::Blocks, además de otras cosas el uso de pestañas y múltiples ventanitas en la misma ventana le hace más versátil . ... y pausa automáticamente el programa .... y es libre.