第十一周项目6-回文&素数(四) .

编制main函数,调用(一)、(二)、(三)定义的3个函数
• 输出1000以内的所有素数。
• 输出1000以内的所有回文数。
• 输出1000以内的所有回文素数。
• 若一个素数的反序数仍为素数,则称它为可逆素数。求10000以内的所有可逆素数。

/*
 *Copyright (c) 2014,烟台大学计算机学院
 *All gight reserved.
 *文件名称:temp.cpp
 *作者:邵帅
 *完成时间:2014年11月6日
 *版本号:v1.0
*/
#include<iostream>
using namespace std;
int main()
{
    bool isPrimer(int n);
    bool isPalindrome(int n);
    int reverse(int x);
    int m;
    cout<<"1000以内所有的素数:";
    for (m=1; m<=1000; m++)
    {
        if (isPrimer(m))
            cout << m << " ";
    }
    cout<<endl<<endl<<"1000以内所有的回文数:";
    for(m=1; m<=1000; m++)
    {
        if (isPalindrome(m))
            cout << m << " ";
    }
    cout<<endl<<endl<<"1000以内所有的回文素数:";
    for (m=1; m<=1000; m++)
    {
        if (isPrimer(m))
        {
            if (isPalindrome(m))
                cout << m << " ";
        }
    }
    cout<<endl<<endl<<"10000以内所有的可逆素数:";
    int n;
    for (m=1; m<=10000; m++)
    {
        if (isPrimer(m))
        {
            n=reverse(m);
            if (isPrimer(n))
                cout<<m<<" ";
        }
    }
    return 0;
}

bool isPrimer(int n)
{
    if(n<2)
        return false;
    for (int i=2; i*i<=n; i++)
    {
        if(n % i == 0)
            return false;
    }
    return true;
}
bool isPalindrome(int n)
{
    int x = 0, r,o;
    o=n;
    while (n > 0)
    {
        r = n % 10;
        x = x * 10 + r;
        n = n / 10;
    }
    if (o==x)
        return true;
    else
        return false;
}
int reverse(int x)
{
    int m=0,r;
    while (x>0)
    {
        r=x%10;
        m=m*10+r;
        x=x/10;
    }
    return m;
}


运行结果:

 

@ Mayuko

posted @ 2014-11-06 17:19  麻麻麻麻鱼鱼  阅读(229)  评论(0编辑  收藏  举报