POJ NOI0113-05 素数回文数的个数(Bailian2928)
来源:互联网 发布:sql注入绕过过滤 编辑:程序博客网 时间:2024/05/29 07:44
问题链接:POJ NOI0113-05 素数回文数的个数。
原题出处:Bailian2928 素数回文数的个数。
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
求11到n之间(包括n),既是素数又是回文数的整数有多少个。
- 输入
- 一个大于11小于1000的整数n。
- 输出
- 11到n之间的素数回文数个数。
- 样例输入
23
- 样例输出
1
- 提示
- 回文数指左右对称的数,如:292,333。
- 来源
- 06计算概论课
问题分析
这是一个判定计数的问题,需要判定一个数是否为素数和回文数。
程序说明
函数isprime()用来判定一个数是否是素数;函数ispalindrom()用来判定一个整数是否为回文数,这是一个更为通用的函数,可以指定进制。
使用函数进行判定时,先调用哪个函数也是有讲究的,一要看那个函数的计算时间,二要看判定成功的概率,需要综合考虑。
AC的C++语言程序:
#include <iostream>#include <cmath>using namespace std;const int START = 11;bool isprime(int n){ if(n == 1) return false; if(n == 2) return true; if(n % 2 == 0) return false; int end = sqrt(n); for(long i=3; i<=end; i+=2) if(n % i == 0) return false; return true;}bool ispalindrom(int n, int base){ int palindrom = 0, temp; temp = n; while(temp) { palindrom *= base; palindrom += temp % base; temp /= base; } return n == palindrom;}int main(){ int n, count; cin >> n; count = 0; for(int i=START; i<=n; i++) if(ispalindrom(i, 10) && isprime(i)) count++; cout << count << endl; return 0;}
1 0
- POJ NOI0113-05 素数回文数的个数(Bailian2928)
- Bailian3247 回文素数【素数+回文】(POJ NOI0113-11)
- Bailian3177 判决素数个数【入门】(POJ NOI0113-10)
- 05:素数回文数的个数
- 素数回文数的个数
- POJ NOI0113-30 1的个数【进制】
- 05:素数回文数的个数(1.13编程基础之综合应用)
- 百练 2928 素数回文数的个数
- Bailian2764 数根【数论】(POJ NOI0113-50)
- vf 计算机二级求俩个数之间的是素数并且为回文数的个数
- POJ NOI MATH-7655 回文数个数
- 素数,回文数,回文素数
- 华为机试——素数判断、比平均数大的个数、回文数判断
- 输出10000以内的素数、回文数、回文素数
- Codeforces 568 A Primes or Palindromes?(求素数个数+判断是否是回文数)
- POJ NOI0113-01 数制转换(Bailian2710)
- POJ NOI0113-03 八进制小数(Bailian2765)
- POJ NOI0113-04 垂直直方图(Bailian2800)
- HDU
- 2016 河南省第九届ACM程序设计大赛 nyoj 1272 表达式求值
- github功能介绍
- 删数问题
- iOS10.3的UILabel无法自动换行问题
- POJ NOI0113-05 素数回文数的个数(Bailian2928)
- Node.js 安装遇到的问题及解决路径(一)
- pixi.js教程中文版--基础篇
- Redis安装php扩展
- 路由重分发
- MySQL知识点摘记——数据库基本操作
- Python多线程下的_strptime问题
- ACM大赛常见单词
- C++面向对象程序设计复习