第十一周项目六:回文素数2

问题及代码:

/*
 *copyright (c) 2014,烟台大学计算机学院
 *all rights reserved.
 *文 件 名 : 回文素数.cpp
 *作    者 :白云飞
 *完成日期 :2014年11月10号
 *版 本 号 :v1.0
 *
 *问题描述 :输出1000以内所有的回文素数,回文数,素数,10000以内所有可逆素数
 *输入描述 :无
 *程序输出 :输出1000以内所有的回文素数,回文数,素数,10000以内所有可逆素数
 */
#include<iostream>
using namespace std;
bool ispalindrome(int);
bool isprimer(int);
int reverse(int);//自定义函数
int main()
{
    int i,n;//声明变量
    for(i=2; i<=1000; i++)//循环语句
    {
        if(isprimer(i))//if语句进行判断
            cout<<i<<" ";//输出素数
        else cout<<"";
    }
    cout<<endl;
    for(i=1; i<=1000; i++)//循环语句
    {
        if(ispalindrome(i))//if语句进行判断
            cout<<i<<" ";//输出回文数
        else cout<<"";
    }
    cout<<endl;
    for(i=2; i<=1000; i++)//循环语句
    {
        if(ispalindrome(i)&&isprimer(i))//if语句进行判断
            cout<<i<<" ";//输出回文素数
        else cout<<"";
    }
    cout<<endl;
    for(i=2; i<=10000; i++)//循环语句
    {
        n=reverse(i);
        if(isprimer(i)&&isprimer(n))//if语句进行判断
            cout<<i<<" ";//输出可逆素数
        else cout<<"";
    }
    cout<<endl;
}
bool ispalindrome(int b)//调用自定义函数
{
    int r,m=0,h=b;//声明变量
    while (b>0)//循环语句
    {
        r=b%10;
        m=m*10+r;
        b=b/10;
    }
    if (m==h)//if语句进行判断
        m=1;
    else m=0;
    return m;
}
bool isprimer(int b)//调用自定义函数
{
    int i;//声明变量
    for(i=2; i<b; i++)//循环语句
    {
        if( b%i==0)//if语句进行判断
            return 0;
    }
    return 1;
}
int reverse(int x)//调用自定义函数
{
    int m=0,r;//声明变量
    while(x>0)//循环语句
    {

        r=x%10;
        m=m*10+r;
        x=x/10;
    }
    return m;
}


运行结果:

学习心得:

这个程序比较麻烦,可是没想到好方法,所以只能先用麻烦的方法了,其中可逆素数想了半天,就是没想起来,先把素数的反序数先赋值给一个字符再进行判断,耽误了半天,还好最后想到了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值