/*
* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 作 者:王静
* 完成日期:2012 年11 月 16 日
* 版 本 号:v1.0
* 输入描述:无
* 问题描述:编制一个返回值为bool型的函数isPrimer(),
用于判断参数是否为素数,isPalindrome()用于判断参数是否是回调用函数回答以下问题(可以分别编制几个程序完成,也可以在一个main()函数中完成
,输出时,用明显的提示语,说明正在完成哪个任务。
* 程序输出:输出10000以内的所有素数.输出10000以内的所有回文数.输出10000以内的所有回文素数
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
#include<cmath>
using namespace std;
bool isPrimer(int n);
bool isPalindrome(int n);
int main()
{
int i;
for(i=1;i<10000;++i){
if(isPalindrome(i)==true){
cout<<i<<"是回文数"<<"\t";
}
if(isPrimer(i)==true){
cout<<i<<"是素数"<<"\t";
}
if(isPalindrome(i)==isPrimer(i)){
cout<<i<<"是回文素数"<<"\t";
}
}
return 0;
}
bool isPrimer(int n)
{
int i;
for(i=2;i<=sqrt(n);++i)
{
if(n%i==0){
break;
}
}
if(i>sqrt(n)){
return true;
}
}
bool isPalindrome(int n)
{
int m=n,f=0;
if(n>10){
for(;m>0;)
{
f=m%10+f*10;
m=m/10;
}
if(f==n){
return true;
}
}
else
return false;
}
运行结果:
(贴图)