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;
}

38 comentarios:

Unknown dijo...

no funciona con los negativos

Unknown 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)}

Unknown 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??

cxyz dijo...

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

Emerson dijo...

como mostrarlos en un intervalo

Unknown dijo...

gracias me sirvio de mucho

Unknown 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

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Anónimo 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.
Anónimo dijo...

En esta parte del código:
for(i=1;i<(n+1);i++){
if(n%i==0){
a++;
}
}
No es necesario que el for haga "n" ciclos, bastaría con la mitad "n/2"
for(i=1;i<(n+1)/2;i++) ya que la segunda mitad serían números mayores a la mitad del ingresado, al dividir ninguno da resto 0 :w

Anónimo dijo...

// numero primo

#include
using namespace std;

int main() {

int a;
int b;
int c;
int num;
cout<<"Digite un numero \n";
cin>>num;
a=num%2;
b=num%3;
c=num%5;
if(num>5){
if(a!=0 && b!=0 && c!=0){
cout<<"El numero es primo";
}else{
cout<<"El numero No es primo";
}
}else{
if(num==1 || num==4){
cout<<"El numero No es primo";
}else{
cout<<"El numero es primo";
}
}

return 0;
}
pues asi lo pense, no se si valga.

Anónimo dijo...

jaja salu2

Anónimo dijo...

esta chingadera no funciona ijodetuputamadre
qlo

Anónimo dijo...

no es cierto amigo 1000 disclpas sorry yo te amo <dos+uno

Bellezas dijo...

visita la pagina http://edgeweb.com.mx

Unknown dijo...

que sucede si le quiero agregar funciones y que dentro del mismo codigo me diga si un numero es par o impar, que me de el factorial y la potencia sera posible?

Unknown dijo...

tengo este codigo y queria meterle funciones y no pude alguien me puede ayudar a meterle unas tres funciones pero que haga lo mismo




#include
#include
#include
#include
#include
#include
int main(){
using namespace std;

int ciclo=0,cambiante=1,y=1,x=0,a=0;
int m=0,n=0,l=1,too=0,nooo=0,pari=0,nopari=0,mayor=0,menor=100000;
int resultado=0,resultados=0;
int arr[100];
cout<>ciclo;
cout<>arr[x];
cout<=1){
r=r*temp;
temp--;
}
cout<<" El factorial de "< mayor){
mayor=arr[d];
}
if (arr[d]< menor){
menor=arr[d];
}

}
printf(" El mayor es %d\n", mayor);
cout<<endl;
printf(" El menor es %d\n", menor);
cout<<endl;
cout<<"***************jabz solorio**************************";
cout<<endl<<endl;
return 0;
}

Unknown dijo...

#include
#include
#include
#include
#include
#include
int main(){
using namespace std;

int ciclo=0,cambiante=1,y=1,x=0,a=0;
int m=0,n=0,l=1,too=0,nooo=0,pari=0,nopari=0,mayor=0,menor=100000;
int resultado=0,resultados=0;
int arr[100];
cout<>ciclo;
cout<>arr[x];
cout<=1){
r=r*temp;
temp--;
}
cout<<" El factorial de "< mayor){
mayor=arr[d];
}
if (arr[d]< menor){
menor=arr[d];
}

}
printf(" El mayor es %d\n", mayor);
cout<<endl;
printf(" El menor es %d\n", menor);
cout<<endl;
cout<<"***************jabz solorio**************************";
cout<<endl<<endl;
return 0;
}

Unknown dijo...

como seria el código de un numero feliz en c++

Unknown dijo...

Gracias al k a escrito la linea de codigo me salvo de mi tarea gracias

Unknown dijo...

Gracias bro por la repuesta me salvaste de una tarea

Anónimo dijo...

amigos tengo un problema necesito un código para saber si un numero es primo o no, pero debo hacerlo sin sentencias de control,puedo utilizar todos los operadores que quiera, pero ninguna sentencia de control NO if, for etc.
LES AGREDE SERIA MUCHO SU AYUDA

Unknown dijo...

como hago dos digitos con numeros primos con switch

Publicar un comentario