mostrar los números naturales primos que le anteceden en C
Algunas posibilidades de solucion:
- Define un arreglo de enteros, inicializa este con los numeros primos menores que 99. Recorrelo desde el inicio imprimiendo todo lo que se vea hasta que el numero que se vea sea mayor al que ingresa, en ese caso, no imprimes y terminas de iterar.
- Define un arreglo de booleanos (o enteros que pueden ser 0 o 1). Cada uno de ellos representara si el numero i-esimo es primo o no.
Inicialmente estan todos en true (o 1). Usa el metodo de la criba de Eratostenes para eliminar todos los que no sean primos. Te quedas con un arreglo de booleanos marcados con true cuando son primos. Recorre este arreglo imprimiendo todos los numeros en que el arreglo tenga true o 1 en la posicion i-esima, te detienes hasta llegar al indice que sea igual al numero que se ingresa.
- Define y usa una funcion que evalue si un numero es primo o no. Haz un ciclo de 1 al numero ingresado-1 y usa la funcion para saber si el numero correspondiente del ciclo es primo o no, si es, lo imprimes, si no, no.
Todos estos metodos pueden realmente saltarse los numeros pares despues del 2. Esos seguro que no son primos.
Hay otras optimizaciones, pero esa parece inicialmente sencilla de aplicar.