回文 反序 素数
来源:互联网 发布:java中md5加密怎么写 编辑:程序博客网 时间:2024/04/30 09:00
/* *程序的版权和版本声明部分: *Copyright(c)2013,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:纪丽娜 *完成日期:2013年 11月11日 *版本号:v1.0 *对任务及求解方法的描述部分: *输入描述: *问题描述: 输出1000以内的所有素数 输出1000以内的所有回文数 输出1000以内的所有回文素数 求1000以内的所有可逆素数*程序输出: *问题分析:3个程序合一*/ #include<iostream>#include<cmath>using namespace std;bool isPalindrome(int);//自定义函数的原型(即函数声明)int reverse(int);bool isPrime(int);int main(){ int m; cout<<"(1)输出1000以内的所有素数"<<endl; for(m=2;m<1000;++m) { if(isPrime(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)&&isPrime(m)) cout<<m<<'\t'; } cout<<endl<<endl; cout<<"(4)求1000以内的所有可逆素数"<<endl; for(m=2;m<1000;++m) { if(isPrime(m)&&isPrime(reverse(m))) cout<<m<<'\t'; }cout<<endl; return 0;} bool isPrime(int n){ bool prime=true; int k=int(sqrt(n)); //素数 for(int i=2;i<=k;i++) { if(n%i==0) //除1和它本身还有别的数能被他整除 { prime=false; break; } } return prime;} bool isPalindrome(int n){ bool palindrome=false; //先默认不是回文数 if(reverse(n)==n) palindrome=true; //调用反序数 return palindrome;} int reverse(int x){ int m=0; //反序数 while(x>0) { m=m*10+x%10; x=x/10; } return m;}