Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/12/2012, 10:29
ecfisa
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 5 meses
Puntos: 22
Respuesta: Encontrar el error en este programa

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
  1. #include<stdio.h>
  2. #include<math.h>
  3.  
  4. int esprimo(int);
  5.  
  6. int main()
  7. {
  8.   int num;
  9.   printf("Introduzca el numero a comprobar: ");
  10.   scanf("%d",&num);
  11.   printf("\n");
  12.   esprimo(num) ? printf("%d es primo.",num) : printf("%d no es primo",num);
  13. }
  14.  
  15. int esprimo(int nro)
  16. {
  17.   int i;
  18.   for(i=2; i <= sqrt(nro); i++)
  19.     if (nro % i == 0) return 0;
  20.   return 1;
  21. }

Mas información: http://es.wikipedia.org/wiki/N%C3%BAmero_primo

Saludos.