回文 反序 素数

来源:互联网 发布:java中md5加密怎么写 编辑:程序博客网 时间:2024/04/30 09:00
/*                             *程序的版权和版本声明部分:                             *Copyright(c)2013,烟台大学计算机学院学生                             *All rights reserved.                             *文件名称:                             *作者:纪丽娜                             *完成日期:2013年 11月11日                             *版本号:v1.0                             *对任务及求解方法的描述部分:                             *输入描述:      *问题描述: 输出1000以内的所有素数            输出1000以内的所有回文数   输出1000以内的所有回文素数           求1000以内的所有可逆素数*程序输出:     *问题分析:3个程序合一*/                             #include<iostream>#include<cmath>using namespace std;bool isPalindrome(int);//自定义函数的原型(即函数声明)int reverse(int);bool isPrime(int);int main(){    int m;    cout<<"(1)输出1000以内的所有素数"<<endl;    for(m=2;m<1000;++m)    {        if(isPrime(m))            cout<<m<<'\t';    }    cout<<endl<<endl;    cout<<"(2)输出1000以内的所有回文数"<<endl;    for(m=2;m<1000;++m)    {        if(isPalindrome(m))            cout<<m<<'\t';    }    cout<<endl<<endl;    cout<<"(3)输出1000以内的所有回文素数"<<endl;    for(m=2;m<1000;++m)    {        if(isPalindrome(m)&&isPrime(m))            cout<<m<<'\t';    }    cout<<endl<<endl;    cout<<"(4)求1000以内的所有可逆素数"<<endl;    for(m=2;m<1000;++m)    {        if(isPrime(m)&&isPrime(reverse(m)))            cout<<m<<'\t';    }cout<<endl;    return 0;} bool isPrime(int n){    bool prime=true;    int k=int(sqrt(n));              //素数    for(int i=2;i<=k;i++)    {        if(n%i==0)      //除1和它本身还有别的数能被他整除        {            prime=false;             break;        }    }    return prime;} bool isPalindrome(int n){    bool palindrome=false;      //先默认不是回文数      if(reverse(n)==n)        palindrome=true;     //调用反序数    return palindrome;} int reverse(int x){    int m=0;                 //反序数    while(x>0)    {        m=m*10+x%10;        x=x/10;    }    return m;}