十一周。。回文数。。素数,,快带碗里来

来源:互联网 发布:linux修改hostname 编辑:程序博客网 时间:2024/05/17 13:08

问题及代码:

/**Copyright (c) 2014,烟台大学计算机学院*All rights reserved.*文件名称:Annpion.cpp*作者:李莉*完成日期:2014年11月01日*版本号:1.0*程序描述:输出1000以内的素数,回文数,回文素数,以及可逆素数*程序输入:无输入*程序输出:1000以内的所有素数,回文数,回文素数,以及可逆素数*/#include <iostream>#include <cmath>using namespace std;bool ispalindrome (int n);//判断是不是回文数的调用函数int reverse (int n);//求回文数的调用函数bool isprimer (int x);//判断是否是素数的调用函数int main(){    int m;    cout<<"(1).1000以内所有的素数"<<endl;    for (m=2; m<=1000; ++m)    {        if (isprimer(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)&&isprimer(m))        cout<<m<<'\t';}cout<<endl<<endl;cout<<"(4).1000以内的所有可逆素数"<<endl;for (m=2; m<=1/**Copyright (c) 2014,烟台大学计算机学院*All rights reserved.*文件名称:Annpion.cpp*作者:李莉*完成日期:2014年11月01日*版本号:000; ++m){    if (isprimer(m)&&isprimer(reverse(m)))        cout<<m<<'\t';}return 0;}bool isprimer(int n){    bool primer=true;//先默认一个数是素数    int i,k;    k=int(sqrt(n));    for (i=2; i<=k; ++i)    {        if (n%i==0)        {            primer=false;//如果该数是不素数的话,记为false,并停止            break;        }    }        return primer;//返回primer    }    bool ispalindrome(int n)//尼玛。被这个n坑死了,~~~~(>_<)~~~~     {        bool palindrome=false;//先默认一个数不是回文数;        if (reverse(n)==n)//比较一个数和他的回文数是否相等            palindrome=true;//相等的话记为true        return palindrome;    }    int reverse(int x)//计算一个数的回文数    {        int m=0,r;        while (x>0)        {            r=x%10;            m=m*10+r;            x=x/10;        }        return m;    }    //写完这个程序。。莉莉快废了。。。


运行结果:

心得体会:还是关于变量传递的问题。。。~~~~(>_<)~~~~ 。。。。整个人快废了。。。but最后搞定了还是粉开心的

0 0