问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:Project4.cpp
* 作 者:李楠
* 完成日期:2014年11月7日
* 版 本 号:v1.0
*
* 问题描述:编制一个返回值为bool型的函数isPrimer(),用于输出1000以内的回文素数(是回文素数返回true,否则false),自编main函数用于测试;
* 输入描述:一个整数
* 程序输出:略
*/
#include <iostream>
using namespace std;
bool isPalindrome(int);
bool isPrimer(int);
int reverse(int x);
int main()
{
int p,j;
p=1000;
cout<<"1000以内的回文素数有:"<<endl;
for(j=10;j<=p;++j)
{
if(isPalindrome(j)&&isPrimer(j))
cout<<j<<" ";
}
return 0;
}
bool isPalindrome(int n)
{
int r,l=0,m;
m=n;
bool ispalindrome=false;
while(m>0)
{
r=m%10;
l=l*10+r;
m=m/10;
}
if(l==n)
ispalindrome=true;
return ispalindrome;
}
bool isPrimer(int n)
{
int l,i;
bool isprimer=true;
for(i=2;i<n;++i)
{
l=n%i;
if(l==0)
{
isprimer=false;
break;
}
}
return isprimer;
}
运行结果:
知识点总结:
在前两个关于素数和回文数的基础上,很轻松就能完成这个程序,感觉如此顺畅,真是不多见!!!
学习心得:
有了同伴的精神支持,写再长的程序也不会感觉累,虽然会有分歧,但是我萌依然是棒棒的好基友啊~好盆友~