问题及代码:
/*
*Copyright (c) 2014,烟台大学计算机学院
*All rights reserved.
*文件名称:Annpion.cpp
*作者:李莉
*完成日期:2014年11月07日
*版本号:v1
*问题描述:计算并输出m以内的回文素数
*程序输入:整数n
*程序输出:n以内的回文素数
*/
#include <iostream>
#include <cmath>
using namespace std;
bool ispalindrome (int);
int reverse (int);
bool isprimer (int);
int main()
{
int m,n;
cin>>m;
for (n=11;n<=m;n++)
{
if (ispalindrome(n)&&isprimer (n))
cout<<n<<'\t';
}
return 0;
}
bool isprimer (int n)
{
bool prime=true;
int k=int (sqrt(n));
for (int i=2;i<=k;i++)
{
if (n%i==0)
{
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 b=0,r;
while (x>0)
{
r=x%10;
b=b*10+r;
x=x/10;
}
return b;
}
运行结果:
心得体会:这道题纠结了好久,就是没有弄清楚bool的用法,最后参考的贺老师的,自己又加以琢磨,才慢慢明白
本文详细介绍了如何使用C++编程语言解决计算并输出指定范围内的回文素数的问题,包括判断一个数是否为回文数、是否为素数的函数实现,以及主函数的流程设计。

被折叠的 条评论
为什么被折叠?



