Código C++:
Ver original
#include <iostream> using namespace std; int main() { int a,b=2,c=3,d=5,e=7; cout<<"introduce un numero: "; cin>>a; b=0; while(b==0 && a==2 || a==3 || a==5 || a==7){ cout<<"Es primo"; b++; break; } if(a%2!=0 && a%3!=0 && a%5!=0 && a%7!=0){ cout<<"Es numero primo"; } else{ cout<<"no es primo"; } }
Como ven lo que hago es que si se divide el numero ingresado y usa modulo(%) entre el 2,3,5,7 los numero primos principales si el resultado es diferente de 0 entonces es primo si es cero entonces no es primo.
Bueno lo he probado y funciona, lo he provado hasta el 100 y pues.. ha funcionado, el unico problema es que, si el numero ingresado es 2,3,5,7 los registrara como que no son primos porque seria asi 2%2=0 y asi con el 3,5 y 7 por eso hice esta linea:
Código C++:
Ver original
while(b==0 && a==2 || a==3 || a==5 || a==7)
pero lo que pasa esque al ingresar un valor antes mencionado se ejecuta tambien el if entonces no se como hacer que solo se ejecute el while para ese caso espero me haya dado a entender.
por cierto se que hay formas mas faciles, tambien he encontrado otros codigos por internet pero quiero hacerlo por mi propia creatividad sin embargo pues me he quedado trabado en eso, les pido que si deben modificar el codigo pueda ser con la misma logica que el original aun si es una estructura un tanto diferente.
Me he basado en esto
Para saber si un número es primo, lo vamos dividiendo por 2, 3, 5... hasta que encontremos una división exacta, en cuyo caso el número sería compuesto, o bien hasta que el cociente de la división sea menor que el divisor. Si hemos llegado a este punto sin encontrar ninguna división exacta, el número dado es primo.
Ejemplos: El numero 49: Dividimos por 2 y no es exacta. Dividimos por 3 y tampoco. Por 5 tampoco. Por 7 sí es exacta, luego el número 49 no es primo, es divisible por 7.
El numero 53: Dividimos por 2 y no es exacta, Por 3 tampoco, ni por 5 ni por 7. Dividimos entre 11 y tampoco es exacta, pero hemos llegado a que el cociente, 4, es menor que el divisor, 11, por lo que el número 53 es primo.
[URL="http://nosolomates.es/ayuda/ayuda/primos.htm"]http://nosolomates.es/ayuda/ayuda/primos.htm[/URL]
Gracias.