回文数 素数问题。

来源:互联网 发布:全画幅微单推荐 知乎 编辑:程序博客网 时间:2024/06/06 19:51
 /*         * Copyright (c) 2012, 烟台大学计算机学院         * All rights reserved.         * 作 者:  刘同宾       * 完成日期:2012 年 11 月 16 日         * 版 本 号:v1.0         *         * 输入描述:    编制一个返回值为bool型的函数isPrimer(),用于判断参数是否为素数,isPalindrome()用于判断参数是否是回文数,调用函数回答以下问题(可以分别编制几个程序完成,也可以在一个main()函数中完成,输出时,用明显的提示语,说明正在完成哪个任务。)                 (1)输出10000以内的所有素数。                 (2)输出10000以内的所有回文数。                 (3)输出10000以内的所有回文素数。    * 问题描述: * 程序输出:* 问题分析:略        * 算法设计:略         */  #include<iostream>#include<cmath>#include<iomanip>using namespace std;int fanxushu(int i);        //函数声明bool ispalindrome(int i);bool isprimer(int i);int main(){int a;cout<<"输出10000以内的所有素数:"<<endl;for(a=2;a<=10000;++a){if(isprimer(a)){cout<<a<<" ";}}cout<<endl<<endl;cout<<"输出10000以内的所有回文数:"<<endl;for(a=2;a<=10000;++a){if(ispalindrome(a)){cout<<a<<" ";}}cout<<endl<<endl;cout<<"输出10000以内的回文素数:"<<endl;for(a=2;a<=10000;++a){if(isprimer(a)&&ispalindrome(a)){cout<<a<<" ";}}cout<<endl<<endl;return 0;}int fanxushu(int i)   //反序数函数{   int l;l=0;while(i>0){l=l*10+i%10;        i=i/10;}    return l;}bool ispalindrome(int i)     //回文数函数{int j,l;bool palindrome=false;j=i;l=0;while(j>0){l=l*10+j%10;        j=j/10;}if(i==l){palindrome=true;}return palindrome;}bool isprimer(int i)      //素数函数{int j,k;bool prime=true;k=int(sqrt(i));for(j=2;j<=k;++j){if(i%j==0){prime=false;break;}}return prime;}

原创粉丝点击