90000+9000+9000+900+900+90+90+9+9
=109998个
看来是不多

人生路难走,转眼已白头。伤心望远山,黯然下小楼。
 
										
					
	修正了一下
在DEV C++4.9.9.2 中运行通过, 花了 4.0000秒。
#include<stdio.h>
#include<math.h>
#include<time.h>
#define MAX 1000000000
#define MIN 3
long int pow10(int i)
//因为DEV C++中的math.h没有 pow10函数,所以现编了一个
//输入:int型整数
//输出:返回10的该整数次幂,返回类型为long int。
{
   long int result=1;
   while(i>0)
      {
      result*=10;
      i--;
      }
   return result;
}
long int nexthuiwen(long int currenthuiwen)
//输入:一个回文数
//输出:比当前回文数大的最小回文数
{
   long int i=currenthuiwen,m;
   int weishu=0;                  //数字的位数
   long int j=0;
//   printf("当前回文数是:%ld\n",i);
   while(i>0)                     //求出数值的位数
      {
      i=i/10;
      weishu+=1;
      }
   if(weishu==1)                  //求出规整前的新数
   {
      currenthuiwen+=1;
   }
   else
   {
      currenthuiwen+=pow10(weishu/2);
      currenthuiwen=currenthuiwen-currenthuiwen%pow10(weishu/2);
   }
//   printf("新数为:%ld\n",currenthuiwen);
   i=currenthuiwen;               //求出规整前数值的位数
   weishu=0;
   while(i>0)                     
      {
      i=i/10;
      weishu+=1;
      }
   for(j=1;j<=weishu/2;j++)      //规整新数
   {
      m=currenthuiwen/(long int)pow10(weishu-j)%10*(long int)pow10(j-1);
//      printf("%ld\n",m);
      currenthuiwen+=m;
   }
//   printf("新的回文数是: %ld\n",currenthuiwen);
   return currenthuiwen;
}
int sushu(long int data)
//输入:任意长整数
//输出:若该整数为素数,则输出1,否则输出0
{
   long int end=(long int)sqrt(data);
   long int i;
   for(i=2;i<=end;i++)
   {
     if(data%i==0)return 0;
   }
   return 1;
}
int main(void)
{
   long int data=MIN;
   clock_t start,end;
   start=clock();
   while(data<=MAX)
   {
      if(sushu(data)) printf("%ld\n",data);
      data=nexthuiwen(data);
   }
   end=clock();
   printf("%lf\n",(double)((end-start)/CLOCKS_PER_SEC));
   return 0;
}
   
