问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:number.cpp
*作 者:赵敏
*完成日期:2014年11月11日
*版 本 号:v1.0
*
*问题描述:输出10000以内的所有可逆素数。若一个素数的反序数仍为素数,则称它为可逆素数。
*/
#include <iostream>
using namespace std;
bool isPrimer(int);
int reverse(int);
int main()
{
int c;
for(c=2;c<=10000;c++)
{
if(isPrimer(reverse(c))&&isPrimer(c))
cout<<c<<",";
}
return 0;
}
bool isPrimer(int n) //在这个函数中只管判断,不能出现cout语句!
{
int i,l;
bool isPrimer=true;
for(i=2;i<n;i++)
{
l=n%i;
if(l==0)
{
isPrimer=false;
}
}
return isPrimer;
}
int reverse(int x)
{
int r,m=0;
while(x>0)
{
r=x%10;
m=m*10+r;
x=x/10;
}
return m;
}
运行结果:
学习心得:
要先判断素数在判断反序数是否为素数,忘了考虑这一点