Pages

lunes, 28 de enero de 2013

Determinar si un número es primo Codigo Fuente en C++

Problema
Diseñar un algoritmo que me permita ingresar cualquier número y determinar si el número ingresado es primo.

Solución
  • Entrada: 19
  • Salida:   Si es número primo
Codigo Fuente en C++
#include <iostream>
using namespace std;
int main(){
   int a=0,i,n;
         cout<<"Ingrese numero"<<endl;
         cin>>n;
         for(i=1;i<(n+1);i++){
         if(n%i==0){
             a++;
            }
         }
         if(a!=2){
              cout<<"No es Primo";
            }else{
                cout<<"Si es Primo";
         }
    return 0;
}

24 comentarios:

Pablo Gonzalez dijo...

no funciona con los negativos

Marvin Farias dijo...

No es diferente con los números negativos. Si el numero es negativo, basta convertirlo en positivo. Después de cin>>n; poner:
if(n<0){n=n*(-1)}

Marvin Farias dijo...

Hay otra opcion. En el caso que quieras generar números primos, sería:
int i=2;
do {
while( (i<n)&&(n%i!=0) ) {i++;}
}
//xxx
while {i<=num};
En este caso generará varios numeros primos que componga el numero N deseado.
en lugar de (//xxx) poned lo que deseáis hacer con el pograma.

razor dijo...

si es negativo solo pon n = abs(n) xd saludos o/

MaNuEl dijo...

Y si quiero saber si un numero cercano a 2^31 -1 (int) es primo o no, pero que no tarde como 10 segundos en calcularlo??

Jonathan baltazar garcia dijo...

se puede hacer lo mismo con un bucle while en vez de un for?

Emerson dijo...

como mostrarlos en un intervalo

CRISTIAN ALEJANDRO PEÑA GUEVARA dijo...

gracias me sirvio de mucho

Eduardo Mejia dijo...

Que tal buenos dias

Como puedo hacer que pregunte si quiero ingresar otro numero y si, si ejecutar otra vez el programa y si no terminarlo

Anónimo dijo...

por que el a++?

Geistein dijo...
Este comentario ha sido eliminado por el autor.
Geistein dijo...
Este comentario ha sido eliminado por el autor.
Geistein dijo...
Este comentario ha sido eliminado por el autor.
Geistein dijo...
Este comentario ha sido eliminado por el autor.
Geistein dijo...
Este comentario ha sido eliminado por el autor.
Geistein dijo...

#include stdio.h

using namespace std;

void main()
{

int num=1;
int i=0;
int count=0;

printf("Bienvenido al programa que le indica si un numero es o no primo.\n\n");
while(num!=0){
printf("Introduzca un numero:");
scanf("%d",&num);

for(int i=1;i<num+1;i++){

if(num%i==0){
count++;
}
}
if(count!=2){
printf("NoPrimo\n");
}
else{
printf("Primo\n");
}

count=0;

}
printf("\nGracias por utilizar este programa.\n\n");


}

Geistein dijo...

el stdio.h va entre <>

Unknown dijo...

bool ComprobarSiEsPrimo(unsigned A){

unsigned contador = 2;

while (contador <= unsigned(sqrt(A)) && (A%contador != 0)){

contador++;

}
if (A == 2) return true; // lo añado como excepcion, pues no se detecta como primo
if (A%contador == 0){
return false;
} else {
return true;
}

}

Este fragmento de codigo te puede servir, si lo implementas, solo tendrias que usarlo como una funcion, donde el parametro A, es el que se evalua para saber si es primo. Si el numero a evaluar es primo, devolvera true, sino false.
#nota: para usarlo deberias incluir las librerias y . Cmath te sirve para la raiz de un numero (la funcion sqrt(n)).
Un saludo! :)

Alexandra dijo...

Se puede convertir en positivo con abs () también más fácil // es decir número absoluto

Alexandra dijo...

Se puede convertir en positivo con abs () también más fácil // es decir número absoluto

Carlos Vargas dijo...
Este comentario ha sido eliminado por el autor.
Adriana Montejo dijo...

como se hace con funciones??

Pauleth Acosta dijo...

que significa la variable a,i,n

Axel_xg dijo...
Este comentario ha sido eliminado por el autor.

Publicar un comentario en la entrada