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

来源:互联网 发布:网络宠物用品店加盟 编辑:程序博客网 时间:2024/05/18 00:15

问题及代码:

/* *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;}


运行结果:

学习心得:

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

 

0 0