Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2012, 20:02
bencoro97
 
Fecha de Ingreso: diciembre-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Encontrar el error en este programa

Hola, escribí un programa que identifica si un numero es primo o no. Al compilarlo no me da ningún error, pero cuando introduzco un número que no es primo me da un resultado extraño. Además, la parte del final cuando quiero seleccionar no funciona, y no tengo idea de donde puede estar el error.

Código:
// un programa para calcular si
// un numero es primo o no

#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <math.h>
#include <stdlib.h>

#define retardo 1e9

void calculo(void);
void eleccion(void);
main()


{   
      calculo();
      return 0;
      }

void calculo(void)
{
     long n, m = 3, cuenta = 0;
     
     printf("\n\n\nIntroduzca el número a comprobar.\n\n");
     scanf("%d", &n);
     printf("\n\nMuy bien. Enviaremos el numero %d a nuestros cientificos\ndel Massachussets Institute of Technology\npara que comprueben si es primo o no.\n\n", n);
     while(cuenta++ < retardo);
     system("cls");
      
     if(n == 0||n == 1||n == 2||n % 2 == 0) 
     {
               printf("\n\n\n\n\n\n\n\n\n\n\n\n\nLo sentimos. El numero %d no es primo.");
               getch(); 
               system("cls");
               eleccion();
               }      
     while(m <= sqrt(n)||n % m != 0)
     {
               m = m + 2;
               }
     if(m <= sqrt(n))
     {
               printf("\n\n\n\n\n\n\n\n\n\n\n\n\n%d es primo.", n);
               getch(); 
               system("cls");
               eleccion();
               }
     if(n % m == 0) 
     {
               printf("\n\n\n\n\n\n\n\n\n\n\n\n\nLo sentimos. El numero %d no es primo.");
               getch(); 
               system("cls");
               eleccion();
               }
     }

void eleccion(void)
{
     char n, s;
     
     printf("\n\n\n\n\n\n\n\n\n\n\n\n\nDesea realizar otro calculo? S/N");
     
     if(getchar() == n) 
     {
           printf("\n\nHasta luego!");
           getch();
           exit(0);
           }
     if(getchar() == s) calculo();
     if(getchar() != n&&getchar() != s);
     {
           printf("\n\n\n\n\n\n\n\n\n\n\n\n\nPor favor, realize una seleccion valida.");
           eleccion();
           }
      }


Gracias por la ayuda!