Dev - C++ - Programa que compruebe si numero es primo reversible.

 
Vista:

Programa que compruebe si numero es primo reversible.

Publicado por Daniel (1 intervención) el 26/03/2015 00:10:39
Como hago un algoritmo en Dev C++ que compruebe si un numero entre el 2 y 100 es primo reversible? agradeceria sus respuestas o ayudas con los codigos,muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa que compruebe si numero es primo reversible.

Publicado por aguml (522 intervenciones) el 27/03/2015 00:27:45
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <stdio.h>
 
int InvertirNumero(int n);
 
int main()
{
   int num,i,a,x;
 
   a=0; //Esta variable la vamos a usar para contar los divisores del número introducido, la inicializamos a 0
 
   do{
      printf("Introduce un numero entre 2 y 100: ");
      scanf("%d",&num);
   }while(num < 2 || num > 100);
 
   for(x=0;x<2;x++)
   {
      for(i=2;i<=num;i++)
      {
         if(num % i == 0) //Si el modulo de num es 0, incrementamos a en 1
            a++;
      }
      if(x==0)
         num = InvertirNumero(num);
   }
   //Si al final del bucle, a vale 2, el número es primo reversible
   if(a==2)
   {
      printf("El numero es primo");
   }
   else
   {
      printf("El numero no es primo");
   }
 
   printf("\n\nPresiona intro para salir");
   getchar();
   getchar();
   return 0;
}
 
/*Invertir numero de hasta 10 digitos*/
int InvertirNumero(int n)
{
   int resto, invertido=0;
 
   while(n!=0)
   {
      //Guarda el resto de la división entre n y 10,para asi guardar cada dígito
      resto = n % 10;
      //Disminuye el numero para asi poder utilizar el digito siguiente
      n /= 10;
      //Invierte el número directamente
      invertido = invertido * 10 + resto;
   }
   return invertido;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa que compruebe si numero es primo reversible.

Publicado por aguml (522 intervenciones) el 27/03/2015 00:42:40
Otro modo donde puedes introducir el rango para que te diga en ese rango cuales son y cuales no son:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
 
int InvertirNumero(int n);
 
int main()
{
   int num,aux,i,a,x,min,max;
 
   do{
      printf("Introduce el valor minimo del rango: ");
      scanf("%d",&min);
      printf("Introduce el valor maximo del rango: ");
      scanf("%d",&max);
      if(min > max)
         printf("El valor de rango inferior no puede ser mayor que el superior\n");
   }while(min > max);
 
   for(num=min;num<=max;num++)
   {
      a=0; //Esta variable la vamos a usar para contar los divisores del número introducido, la inicializamos a 0
      aux=num;
 
      for(x=0;x<2;x++)
      {
         for(i=2;i<=aux;i++)
         {
            if(aux % i == 0) //Si el modulo de num es 0, incrementamos a en 1
               a++;
         }
         if(x==0)
            aux = InvertirNumero(aux);
      }
      //Si al final del bucle, a vale 2, el número es primo reversible
      if(a==2)
      {
         printf("\nEl numero %d es primo reversible",num);
      }
      else
      {
         printf("\nEl numero %d no es primo reversible",num);
      }
   }
 
   printf("\n\nPresiona intro para salir");
   getchar();
   getchar();
   return 0;
}
 
/*Invertir numero de hasta 10 digitos*/
int InvertirNumero(int n)
{
   int resto, invertido=0;
 
   while(n!=0)
   {
      //Guarda el resto de la división entre n y 10,para asi guardar cada dígito
      resto = n % 10;
      //Disminuye el numero para asi poder utilizar el digito siguiente
      n /= 10;
      //Invierte el número directamente
      invertido = invertido * 10 + resto;
   }
   return invertido;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar