当前位置: 首页 > news >正文

[C++刷题] 求回文素数

求回文素数

题目

素数回文数的个数

题目描述

11 11 11 n n n 之间(包括 n n n),既是素数又是回文数的整数有多少个。

输入格式

一个大于 11 11 11 小于 10000 10000 10000 的整数 n n n

输出格式

11 11 11 n n n 之间的素数回文数个数。

样例 #1

样例输入 #1
23
样例输出 #1
1

提示

回文数指左右对称的数,如: 11 11 11 12121 12121 12121

可以写两个函数判断是否同时符合素数和回文数的要求
素数:

bool is_prime(int a)
{if (a == 1)return true;else{for (int i = 2; i <= sqrt(a); i++)//使用sqrt优化算法, 直接去掉sqrt也行, 记得带上头文件 <cmath>{if (a % i == 0)return false;}return true;}
}

回文数
本题难点主要是回文数的判断
思路: 将数字倒置存储, 比较和原数字是否相同, 相同即为回文.
可以利用中间变量, 每次取到余数(个位), 赋值给一个临时变量reversed
由于要留着原来的数字做比较, 所以不能改变原变量, 需要使用中间变量temp
使用while(temp>0temp!=0)每次/10(取数字每一位的方法)
最后将倒置的数字和原数字比较

bool huiwen(int a)
{int temp = a,remainder;//由于要留着原来的数字做比较, 所以不能改变原变量, 需要使用中间变量`temp`int reversed = 0;while (temp > 0){remainder = temp % 10;reversed = reversed * 10 + remainder;temp /= 10;}if (reversed == a)//最后将倒置的数字和原数字比较return true;return false;
}

根据本题要求, 写出主程序

int main()
{int n;int cnt = 0;cin >> n;for (int i = 11; i <= n; i++){if (is_prime(i)&&huiwen(i))cnt++;}cout << cnt << endl;
}

完整代码:

#include<iostream>
using namespace std;
#include<cmath>bool is_prime(int a)
{if (a == 1)return true;else{for (int i = 2; i <= sqrt(a); i++){if (a % i == 0)return false;}return true;}
}bool huiwen(int a)
{int temp = a,remainder;int reversed = 0;while (temp > 0){remainder = temp % 10;reversed = reversed * 10 + remainder;temp /= 10;}if (reversed == a)return true;return false;
}int main()
{int n;int cnt = 0;cin >> n;for (int i = 11; i <= n; i++){if (is_prime(i)&&huiwen(i))cnt++;}cout << cnt << endl;
}
http://www.lryc.cn/news/514350.html

相关文章:

  • SQLALchemy如何将SQL语句编译为特定数据库方言
  • [卫星遥感] 解密卫星目标跟踪:挑战与突破的深度剖析
  • I2C(一):存储器模式:stm32作为主机对AT24C02写读数据
  • scrapy 教程
  • 2025元旦源码免费送
  • 高级架构五 设计模式
  • RFID手持机与RFID工业平板在仓储物流管理系统中的选型
  • IoC设计模式详解:控制反转的核心思想
  • 《云原生安全攻防》-- K8s安全配置:CIS安全基准与kube-bench工具
  • LINUX下载编译gtk
  • 基于VSCode软件框架的RISC-V IDE MRS2正式上线发布
  • AWS re:Invent 2024 - Dr. Werner Vogels 主题演讲
  • 前端小案例——520表白信封
  • FPGA随记——过约束
  • 如何利用云计算进行灾难恢复?
  • 【华为OD-E卷 - 九宫格按键输入 100分(python、java、c++、js、c)】
  • 基于AI大模型的医院SOP优化:架构、实践与展望
  • Linux快速入门-一道简单shell编程题目
  • Hive如何创建自定义函数(UDF)?
  • 聊聊前端框架中的process.env,env的来源及优先级(next.js、vue-cli、vite)
  • linux shell脚本 【分支结构case...in 、循环结构、函数】内附练习
  • VSCode 终端显示“pnpm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本”
  • Android ActionBar 技术深度解析
  • matlab-数字滤波器设计与实战
  • JDK的运作原理
  • el-table 实现纵向多级表头
  • Android Studio 下载安装教程(2024 更新版),附详细图文
  • 安全框架:Apache Shiro
  • 泊松融合调研
  • uniapp——App下载文件,打开文档(一)