探索10000以内素数、回文数与回文素数的编程挑战
本资源是一个C++程序,旨在实现四个与数值特性的关联功能:判断素数、查找回文数、查找回文素数以及寻找可逆素数。该程序的核心部分是`isPrimer()`和`isPalindrome()`两个函数,它们分别用来检测一个整数是否为素数和回文数。 `isPrimer(int n)`函数接收一个整数`n`作为参数,通过遍历从2到`sqrt(n)`的范围,检查`n`是否能被任何小于它的数整除,如果不能,则`n`是素数,返回`true`;否则返回`false`。这种方法利用了素数的一个基本性质:除了1和它本身,没有其他因子。 `isPalindrome(int n)`函数则判断一个整数是否为回文数。它将输入的数字转换成字符串,然后比较原数与其反向字符串是否相等,若相等则为回文数,返回`true`,否则返回`false`。 `menu()`函数提供了一个用户界面,让用户选择执行任务:输出10000以内的所有素数(选择1)、所有回文数(选择2)、所有回文素数(选择3)以及寻找10000以内的所有可逆素数(选择4)。选择0会退出程序。 在`main()`函数中,首先调用`menu()`获取用户输入,然后根据用户的选择执行相应的任务。例如,当用户选择1时,会遍历1到9999的所有整数,对每个数调用`isPrimer()`并打印素数。 可逆素数的判断涉及到两个步骤:首先使用`isPrimer()`检查是否为素数,然后计算其反序数(通过`inverted(int n)`函数),再次调用`isPrimer()`判断反序数是否也是素数。如果两者皆为素数,则该数为可逆素数。 这个程序展示了如何使用C++处理基础的数学问题,并提供了交互式的菜单选择来展示不同类型的数值特征。对于编程学习者来说,这是一个很好的实践机会,可以加深对素数、回文数概念的理解,同时提高代码逻辑组织和条件判断能力。
* 程序的版权和版本声明部分: 版权归作者所有
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 文件名称:main.cpp
* 作 者:潘长治
* 完成日期:2012 年 10 月 2 日
* 版 本 号:v2.0
* 对任务及求解方法的描述部分:略
* 输入描述:无
* 问题描述:编制一个返回值为bool型的函数isPrimer(),用于判断参数是否为素数,
调用函数回答以下问题
(请包括在一个main()函数中完成,输出时,用明显的提示语,说明正在完成哪个任务。)
(1)输出10000以内的所有素数。
(2)输出10000以内的所有回文数。
(3)输出10000以内的所有回文素数。
(4)若一个素数的反序数仍为素数,则称它为可逆素数。求10000以内的所有可逆素数。
* 问题分析:略
* 算法设计:略
*/
#include<iostream>
using namespace std;
bool isPrimer(int n);
bool isPalindrome(int n);
void menu();
int inverted(int n);
{
menu();
}
void menu()
{
int value;
int i;
for(; ;)
{
cout << "****************************" << endl;
cout << "* 欢迎使用 *" << endl;
cout << "* 作者:烟台大学 *" << endl;
cout << "* 潘长治 *" << endl;
cout << "* *" << endl;
cout << "* 退出 0 *" << endl;
cout << "* 10000内所有素数1 *" << endl;
cout << "* 10000内所有回文数2 *" << endl;
cout << "* 10000内所有回文素数3 *" << endl;
cout << "* 10000内所有可逆素数4 *" << endl;
cout << "****************************" << endl;
cout << "请输入你的选择。。。" << endl;
cin >> value;
switch(value)
{
case 0:
exit(0);
case 1:
剩余5页未读,继续阅读
- 粉丝: 11
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦