#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;
}