Hola RGT
Cita:
Iniciado por RGT ...
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 originalint esprimo(int num) {
int i;
for ( i=2; i < num; i++ )
if ( num % i == 0 ) return 0;
return 1;
}
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.