Ayuda para crear un algoritmo en C

redknight

Bovino maduro
#1
Hola hermanos bakunos, hice este tema para ver si podia obtener un poco de ayuda para crear un algoritmo en C que me permita reconocer si un numero es primo o no, la verdad es una tarea que me encargaron pero el problema es que como apenas estoy empezando en esto de la programacion, no tengo idea alguna de como hacerlo. Tomare en cuenta sus respuestas.
Gracias :)


por cierto, no quiero que me den el codigo asi tal cual lo debo de usar mas bien ideas o algo de orientacion

por el momento llevo esto, pero no me muestra el resultado:
Código:
#include <stdio.h>
#include <math.h>
int main (void) {
    float num, div, fx;
    printf ("\n ingresa cualquier numero para saber si es primo");
    scanf ("%d", &num);
    fx=num/div;{
                if (num/div==0) {
                                 printf ("el numero %d no es primo", &num);
                                 return 0;
                                 }
                }
                printf ("%d si es primo", &num);
                return 0;
}
la verdad no se nada del uso del for o del if pero intente basarme en varios codigos que encontre por ahi
 

elboru

Bovino maduro
#2
mira... es muy sencillo, hay muchisimas formas en qe lo puedes resolver, en este momento se me ocurre una, puedes poner un for empezando de 1 hasta qe sea menor o igual al numero dado (el qe vas a ver si es primo)...
cada uno de esos numeros sacale el "modulo" el modulo por si no lo sabes es un operador qe utiliza c, para sacar el resto en una division, ejemplo: 4 % 2 = 0 ejemplo2: 6 % 4 = 2
Muy bien ahora definamos qe es un numero primo, es un numero qe solo puede ser dividido entre 1 y si mismo donde el modulo o resto seria "0" (cero).

Entonces si recorres un for, donde todos los numeros de 1 hasta el numero qe quieres revisar (N), cuantas de esas operaciones con % te darian 0? facil solo 2 (1, N)

Entonces puedes implementar un contador dentro de un if, el cual contara cuantas veces el resultado de la operacion % da como resultado 0, si al terminar el for el contador tiene un valor mayor a 2, significa qe el numero no es primo, en caso contrario si es primo...
jaja siento qe lo reboruje un poco, en realidad es un algoritmo muy pequeño espero qe me allas entendido, sino solo pregunta, o si tienes algun problema con la implementacion en c...
 
#3
mmmmm en wikipedia hay buena informacion con respecto a eso.
Si mi memoria no me falla, el numero que quieres conocer si es primo o no, debes de dividirlo... si el residuo es cero, entonces en par... si el residuo es 1, entonces es primo
 
#4
Amigo, disculpa la respuesta, pero creo que seria más rápido si buscaras en google "algoritmo numeros primos" y ahi encuentras de todo un poco.
 

elboru

Bovino maduro
#5
mira amigo entonces te recomiendo dos cosas
1. Estudia y entiende perfectamente lo qe es un if, else, for, whil, do while, switch, etc etc
Son herramientas basicas a la hora de programar en c y en practicamente cualquier lenguaje, te hago una analogia, como pretendes crear una silla si no sabes para qe o como se usan un martillo, un cerrucho, cincel...
2. Si estas aprendiendo a programar JAMAS pero JAMAS, copies un solo codigo... neta te lo digo en serio... Es lo peor qe puedes hacer cuando estas aprendiendo... nunca copies codigo sino jamas vas a aprender, te hago la misma analogia, ¿¿como pretende un precarpintero aprender si solo estudia una silla, y jamas agarra un martillo???


pd prueba quitando el punto y coma del if para qe corra el programa saludos..
 

redknight

Bovino maduro
#6
mira amigo entonces te recomiendo dos cosas
1. Estudia y entiende perfectamente lo qe es un if, else, for, whil, do while, switch, etc etc.
ten por seguro que me pondre al corriente con eso, la verdad no sabia por donde ir avanzando,
[SARCASMO]bendito sea el nuevo sistema educativo por competencias[/SARCASMO]
reestructurare el codigo en cuanto aprenda un poco mas de esto lo prometo.:vientos:

Por cierto, le quite el punto y coma pero aun asi no me muestra el resultado.
 
#7
Busca en google "Criba de Eratóstenes", es el algoritmo mas rapido para encontrar primos. Al iniciar busca todos los primos en el rango que te interesen, guardalos en un arreglo y despues consultas todos los que quieras, y si estan en el arreglo de primos es por que son primos claro. No calcules la criba para cada consulta por que ya no va a ser rapido.
 
Arriba