Hola.
Es que el modo en que calculas el número primo es incorrecto.
Un modo sencillo de comprobar si un número es primo consiste en dividirlo por los sucesivos valores comprendidos entre 2 y su raíz cuadrada.
Ejemplo:
Código C:
Ver original#include<stdio.h>
#include<math.h>
int esprimo(int);
int main()
{
int num;
printf("Introduzca el numero a comprobar: "); esprimo
(num
) ? printf("%d es primo.",num
) : printf("%d no es primo",num
);}
int esprimo(int nro)
{
int i;
for(i
=2; i
<= sqrt(nro
); i
++) if (nro % i == 0) return 0;
return 1;
}
Mas información:
http://es.wikipedia.org/wiki/N%C3%BAmero_primo
Saludos.