Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/04/2015, 22:11
ecfisa
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 5 meses
Puntos: 22
Respuesta: Saber si un numero es primo

Hola RGT
Cita:
Iniciado por RGT Ver Mensaje
...
He pensado y llegue a esta conclusion:

Código:
if (liNumero / liNumero == 1 && liNumero / 1 == liNumero)
        printf("\nEs primo.\n");

    else
        printf("\nNo es primo.\n");
ej:
13 / 13 = 1
ó
13 / 1= 13

si no es eso, entonces no es primo.

estoy en lo correcto?.
¿ Y que hay con 12 ?
12 / 12 = 1
12 / 1 = 12

¿ Y con 8 ?
8 / 8 = 1
8 / 1 = 8
Ambos cumplen la condición y sin embargo es evidente que estos dos últimos no son primos.

Lo que te explicó razpeitia, es que son primos cuando solo son divisibles por si mismos y la unidad, eso implica que no lo son por nigún otro mayor que 2 y menor que él.
El modo mas simple de comprobación que conozco es:
Código C:
Ver original
  1. int esprimo(int num) {
  2.     int i;
  3.  
  4.     for ( i=2; i < num; i++ )
  5.       if ( num  % i == 0 ) return 0;
  6.  
  7.     return 1;
  8. }
una mejora sería recorrer hasta la raíz cuadrada del número, pero necesita la inclusión de math.h o cmath.

No quiere decir que no exista, pero al menos yo no conozco un modo genérico de verificar si un número es primo y que evite el uso de ciclos. Los métodos de Fermat y Euler, las cribas de Eratóstenes y cuadrática también lo hacen.

Saludos.