¡Advertencia!
Este tema no ha tenido respuestas en más de un mes. Recuerda que si deseas añadir una nueva debes cumplir con las normas de la web.
Por si le interesa a alguien:

¿Que es eso?

¿Que es eso?

Código fuente de un programa en c que te pide un número y te dice si es primo o no.
xD, muy util para un examen de mates

Amante de loros!

Código fuente de un programa en c que te pide un número y te dice si es primo o no.


Recomendado para chonis, canis, hipsters y demás desgracias humanas.
Si hubiera tenido esto hace un año...

Si hubiera tenido esto hace un año...

Podéis pedirme cosas de este estilo, e intentaré hacerlas xd
@Gceka si vas a comentar una tontería mejor no lo hagas.
A mi el C no me gusta, como mucho un poco de C# y ya. Prefiero usar Java

Podéis pedirme cosas de este estilo, e intentaré hacerlas xd
No, ya, gracias Jorge pero es que hace un año estaba dando una materia en la universidad en la que tenía que hacer programas en C y uno era éste. Al final no sé si lo logré hacer o lo copié de un amigo, pero sé que me dio mucho trabajo >.< hasta a cj le pedí ayuda.
Ami me hubiera servido esto hace 6 meses cuando veia c++ xdd jajaja pero yase a quien pedirle ayuda por si me trabo en algo en mis tareas de programación xD aunque casi siempre me corre el programa  la primeraXDD  ;*
Ahorita usamos Visual Studio.

Kek
Lo he mejorado ahora dice si es primo y si tiene primo gemelo.
Y he hecho otro que metes un número y te dice todos los primos anteriores a él, si alguno lo quiere que avise.
Ajá que, interesante  :cz:
1, 3, 5, 7, 11, 13, 17

1, 3, 5, 7, 11, 13, 17

Solía organizar eventos, moderar y asesorar. Ahora solamente me doy paseos.
Ni idea de C pero me parece que eso se puede mejorar. Si buscas saber si es un número primo con dividirlo desde 3 hasta N/2 te vale. (Si es divisible entre N/2 también lo es entre 2 y entre 1 siempre será, así te ahorras dos ciclos)
Yo hubiese tirado con un while, pero no tengo ni idea si esta así puesto en C sólo se Java, Ada y un poco de fortran.
Poco a poco irás mejorando, genial! :juju:

Español. Exmiembro del DDI y los ya desaparecidos departamentos de Relaciones públicas y de Artículos. Programador y escritor principiante.
jaja, muy útil  :lengua:

Ni idea de C pero me parece que eso se puede mejorar. Si buscas saber si es un número primo con dividirlo desde 3 hasta N/2 te vale. (Si es divisible entre N/2 también lo es entre 2 y entre 1 siempre será, así te ahorras dos ciclos)
Yo hubiese tirado con un while, pero no tengo ni idea si esta así puesto en C sólo se Java, Ada y un poco de fortran.

Si con poner el x/2 vale para comprobar pero como la diferencia de rendimiento es insignificante pues da igual,y si se puede con while pero el for es más útil.

Si con poner el x/2 vale para comprobar pero como la diferencia de rendimiento es insignificante pues da igual,y si se puede con while pero el for es más útil.

Te equivocas, la diferencia es importante. Si quieres comprobar el numero 14 pues como que da igual pero si quieres mirar si el numero 1.345.456 es primo se nota. Estos detalles a la larga se notan. Te decia el while para parar el bucle en cuanto encontrara un divisor.

Te equivocas, la diferencia es importante. Si quieres comprobar el numero 14 pues como que da igual pero si quieres mirar si el numero 1.345.456 es primo se nota. Estos detalles a la larga se notan. Te decia el while para parar el bucle en cuanto encontrara un divisor.

El for es igual que el while, solo que te permite directamente inicializar el valor de la variable, luego  la condición(este es elúnico argumento del while) y además lo que cambia en cada ciclo del bucle.

Aunque sea 1 millon en este programatan simple la diferencia es menor de 1 s, osea despreciable, si que es verdad que si se hace un programa más grande si que hay que mirar como mejorar el rendimiento como has hecho tú por que ahí si que se nota bastante.



#include <stdio.h>
#include <stdlib.h>

/*
*
*/
int esPrimo (int x) {
    int i,a=0;
   
    for (i=1; i<=x/2; i++){
        if (x%i == 0){
       
        a++;
        }
     
       
    };
    if (a>1) return 0;
    else return 1;

}
int main(int argc, char** argv) {
    int numero;
    printf ("Introduce numero entero");
    scanf ("%d", &numero);
   
    if (esPrimo(numero)) printf ("%d  es primo", numero);
    else printf ("%d no es primo", numero);
   

    return (EXIT_SUCCESS);
}




Lo pongo corregido (justo hice ese cuando aprendí a hacer las funciones, aquí las uso corréctamente)