/*
* 程序的版权和版本声明部分:
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 文件名称:输出1000以内的所有素数 回文数 回文素数 可逆素数.cpp
* 作 者:毛通
* 完成日期:2013 年 1月 26 日
* 版 本 号:v1.0
*/
#include
#include
using namespace std;
bool isprime(int m);
bool ispalindrome(int m);
int reverseNum(int m);
int main()
{
int m;
cout<
for(m=2;m<=1000;m++)
{
if(isprime(m))
cout<
}
cout<
cout<
for(m=2;m<=1000;m++)
{
if(ispalindrome(m))
cout<
}
cout<
cout<
for(m=2;m<=1000;m++)
{
if(ispalindrome(m)&&isprime(m))
cout<
}
cout<
cout<
for(m=2;m<=1000;m++)
{
if(isprime(m)&&isprime(reverseNum(m)))
cout<
}
return 0;
}
bool isprime(int m)
{
bool prime=true;
int k=int (sqrt(m));
for(int i=2;i<=k;i++)
{
if(m%i==0)
{
prime=false;
break;
}
}
return prime;
}
bool ispalindrome(int m)
{
bool palindrome=false;
int n,k;
n=m;
k=0;
while (n>0)
{
k=k*10+n%10; //k是m的反序数 例如153的反序数为351
n=n/10;
}
if(k==m) //判断这个反序数是不是原来的数
palindrome=true;
return palindrome;
}
int reverseNum(int m)
{
int k;
k=0;
while(m>0)
{
k=k*10+m%10;
m=m/10;
}
return k; //直接返回这个反序数
}
/*
运行结果:
*/