回文质数

来源:互联网 发布:skew symmetric 矩阵 编辑:程序博客网 时间:2024/05/18 02:41
回文质数:采用构造回文数在判断是否为质数的办法。
11的整倍数有一个性质,那就是奇数位上数字之和=偶数位上数字之和.所以所有偶数位的回文数都不可能为质数!!!
只有两位数及以上位数的数能构成回文数!

#include<iostream>
#include<math.h>


using namespace std;


int huiwen(int);                                              //构造回文数
int prime(int);                                                //判断素数
 

int main()                                                     //本题采用构造回文数,在判断是否为素食再输出的办法
{
 int a,b;
 cin>>a>>b;
 int i;
 if(a<12)
 {
  for(i=a;i<12&&i<=b;i++)
  {
   if(prime(i))
   {
    cout<<i<<endl;
   }
  }
 }
 


 int temp;                                                                                //寄存!!!
 for(i=10;i<10000;i++)
 {
  temp=i;
  i=huiwen(i);
  {
   if(i>=a&&i<=b)
   {
    if(prime(i))
    {
     cout<<i<<endl;
    }
   }
  }
  i=temp;
 }
 return(0);
}


int huiwen(int n)                                                                //制造回文数
{
 int m;
 m=n/10;
 while(m)
 {
  n=n*10+m%10;
  m=m/10;
 }
 return(n);
}



int prime(int n)                                                          //判素数
{
 int j,flag=0;
 double k=sqrt(n);
 if(n%2==0&&n!=2||n==1)
 {
  return(0);
 }
 for(j=3;j<=k;j=j+2)
 {
  if(n%j==0)
  {
   flag=1;
   break;
  }
 }
 if(flag==0)
 {
  return(1);
 }
 else
 {
  return(0);
 }
}