回文数 素数问题。
来源:互联网 发布:全画幅微单推荐 知乎 编辑:程序博客网 时间: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;}