输出1000以内的所有素数 回文数 回文素数 可逆素数

来源:互联网 发布:明星衣橱软件下载 编辑:程序博客网 时间:2024/05/16 08:47

/* 
* 程序的版权和版本声明部分: 
* Copyright (c) 2012, 烟台大学计算机学院 
* All rights reserved. 
* 文件名称:输出1000以内的所有素数 回文数 回文素数 可逆素数.cpp 
* 作    者:毛通 
* 完成日期:2013 年 1月 26 日 
* 版 本 号:v1.0 
*/

#include<iostream>#include<cmath>using namespace std;bool isprime(int m);bool ispalindrome(int m);int reverseNum(int m);int main(){int m;cout<<"(1)素数:"<<endl;for(m=2;m<=1000;m++){if(isprime(m))cout<<m<<" ";}cout<<endl<<endl;cout<<"(2)回文数:"<<endl;for(m=2;m<=1000;m++){if(ispalindrome(m))cout<<m<<" ";}cout<<endl<<endl;cout<<"(3)回文素数:";for(m=2;m<=1000;m++){if(ispalindrome(m)&&isprime(m))cout<<m<<" ";}cout<<endl<<endl;cout<<"(4)可逆素数:"<<endl;for(m=2;m<=1000;m++){if(isprime(m)&&isprime(reverseNum(m)))cout<<m<<" ";}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的反序数为351n=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;          //直接返回这个反序数}


 

 

/*
运行结果:


*/

原创粉丝点击