|
Hola muy buenas!!!
Bueno leyendo los ejercicios he visto que son para que entiendas la programación. Si te los hago yo, creo que no aprenderás. Sé que al principio es difícil pero tienes que intentarlo. Yo te hago sólamente uno para que veas como se haría, pero intenta los demás vale? Y si los vas haciendo y te atascas me pones el código y te intento explicar y corregir.
5. Imprimir los números primos menores que 1000.
Lo primero que tendríamos que saber para poder resolver este problema es qué es un número primo. Un número primo es aquél que sólo es divisible por sí mismo y por 1. Por ejemplo el 13 (buen número eh? jeje). Entonces en el código deberíamos separar o filtrar estos números de los que no son primos. El procedimiento sería el siguiente:
1. Utilizaremos una variable para guardar cualquier número. La pondremos un nombre orientativo, por ejemplo "num". Además tendremos, un contador y un booleano.
Declaramos las variables:
Numero num=0;
Numero contador=0;
Boolean esPrimo= true; //importante: supondremos que todos los número son primos hasta que no se demuestre lo contrario (como en los juicios jajaja).
2. Vamos a recoger aquellos números que sean primos, pero primero tendremos que ir buscando número a número a ver cuáles son primos y cuáles no. Por lo tanto haremos un bucle con un contador que vaya de 1 en 1 y que no lea más allá de 1000. Dentro del bucle haremos la comprobación a cada número. Lo haríamos así:
Mientras(num<1000)
num=num+1;
contador=2; //(Porque si no, tendríamos que comprobar que el número no
//lo dividimos por 1 (ya que todos los números son divisibles por 1)
Mientras (contador<num)
Si (num MOD contador == 0)
esPrimo=false;
break; //(salir del mientras)
//POSIBLE CAMBIO DE ENUNCIADO: SI TE PIDIERAN CONTAR CUANTOS
//PRIMOS HAY, PONDRIAS AQUI UN CONTADOR.
Fin Si
contador=contador+1;
Fin Mientras
Si(esPrimo)
imprimirEnPantalla(num);
Fin Si
esPrimo=true;
Fin Mientras
Además he comprobado en Java a ver si esto funciona, te pongo el código por si te sirve de algo ver algo "real".
int num=0;
int contador=2;
boolean NoNumPrimo= false;
for(num=1; num<1000;num++){
contador=2;
while (contador<num){
if (num%contador==0){
NoNumPrimo= true;
break;
}
contador=contador+1;
}
if (!NoNumPrimo){
System.out.println(num);
}
NoNumPrimo=false;
}
En cuanto a los consejos, seguro que ya te los han dicho mil veces pero es que son verdad!!! jaja. Pues hay que intentar que el código sea claro, estructurarlo... no es lo mismo ver un pegote de código que un algoritmo bien tabulado, organizado y comentado. Hmmm trucos trucos para hacer los ejercicios no hay. Simplemente deberías pensar como si fueran casi matemáticas y un poco de sentido común.
Por ejemplo, si tienes una bolsa llena de bolas de colores y te dicen que saques con la mano solamente las verdes... que es lo que haces tú en tu cabeza para sacarlas?
Lo que haces es coger una bola, mirar qué color tiene, si es verde te la quedas, si no, la tiras. Y así hasta que no queden más bolas. No intentes pensar en un código complejo, porque no se te va a ocurrir, intenta simplificar e ir escribiendo en código paso a paso lo que tú harías.
Espero haberte ayudado, y ya sabes si tienes alguna duda específica te intentaré ayudar.
Un abrazo!!
|