/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:C++18.cpp
*作 者:王一锟
*完成日期:2014年11月6日
*版 本 号:v1.0
*
*问题描述:求10000以内可逆素数
*输入描述: 一个整数
*输出描述:所有可逆素数
*/
#include <iostream>
using namespace std;
bool isPrimer(int);
bool isPalindrome(int);
int main()
{
int m,n;
cin>>m;
if(m>=2)
for(n=2; n<=m; ++n)
{
if(isPrimer(n)&&isPalindrome(n))
cout<<n<<" ";
}
}
bool isPrimer(int n)
{
int i=2;
while(n%i!=0)
++i;
if(n==i)
return true;
else
return false;
}
bool isPalindrome(int m)
{
int t=0,r;
while(m>0)
{
r=m%10;
t=r+t*10;
m=m/10;
}
if(isPrimer(t))
return true;
else
return false;
}
输出结果:
总结:为何把if(isPrimer(n)&&isPalindrome(n))中的俩函数交换就输出错误了呢???