写一个函数实现输出 1 -- n 之间的所有回文素数 如:131 -- 是素数 -- 131 回文素数

#include <stdio.h>

void ng_ss(int n);
int pd_ss(int n);
int sz_dd(int n);

int main(void)
{
 int t = 0;
 printf("请输入大于1的整数n:");
 scanf("%d",&t);
 printf("回文素数分别是:");
 ng_ss(t);
 printf("\n");
 return 0;
}
void ng_ss(int n)
{
  int j,ss = 0,dd = 0,hw = 0;
  for(j = 2;j <= n;j++)
  {
      ss = pd_ss(j); //判断是不是素数
      if(ss == 1) //如果是素数
      {
        dd = sz_dd(j); //颠倒
        if(dd == j)//颠倒之后跟原来的一样,则输出
        {
          printf(" %d ",j);
        }
      }

  }

}

int pd_ss(int n)
{
  int i;
  for(i = 2;i < n; i++)
  {
    if(n % i == 0)
    {
      return 0; 
    }
  }
  return 1;
}

int sz_dd(int n)//数字颠倒 321  123
{
  int m,sum = 0;
  while(n > 0)
  {
    m = n % 10;
    n = n / 10;
    sum = sum * 10 + m;
  }
  return sum;
}

猜你喜欢

转载自blog.csdn.net/qq_28445515/article/details/81288024