Prime Palindromes(回文素数)
来源:互联网 发布:支付宝mac 编辑:程序博客网 时间:2024/04/28 23:18
Problem Description
The number 151 is a prime palindrome because it is both a prime number and a palindrome (it is the same number when read forward as backward). Write a program that finds all prime palindromes in the range of two supplied numbers a and b (5 <= a < b <= 100,000,000); both a and b are considered to be within the range .
INPUT FORMAT
Line 1:Two integers, a and b
SAMPLE INPUT
5 500
OUTPUT FORMAT
The list of palindromic primes in numerical order, one per line.
SAMPLE OUTPUT
5
7
11
101
131
151
181
191
313
353
373
383
MY IDEA
题目大意是打印a到b之间的回文素数,一般思路是计从a到b循环匹配满足素数与回文数的条件的数。但这样会超时。
我想到了比较快速的方法是先取回文数,而取回文数只要取半边就行。b最大是100,000,000,回文数的一半最大只要循环到10000次即可,优化了时间。
后来通过数据发现,偶数长度的回文串只有11,其他满足条件的回文素数都是奇数回文串,所以回文数的取法又简化了。
MY CODE
#include <iostream>#include <cstring>#include <cmath>using namespace std;int func(int n)//转换成回文数{//如n=12时,我们只需要回文数121, int res=n/10; while(n) { res=res*10+n%10; n/=10; } return res;}int is_prime(int n)//判断素数 { if(n<=1){ return 0;} if(n==2) return 1; int i; int k=sqrt(n); for(i=2;i<=k;i++) { if(n%i==0) { return 0; } } return 1;}int main(){ int a,b; cin>>a>>b; int i; if(a<12){//处理偶数回文数11的情况,若a小于12,输出a在5-11之间满足条件的数 for(i=a;i<12;i++) { if(is_prime(i)==1) { cout<<i<<endl; } } } for(i=10;i<=10000;i++) { int x; //先还原回文数另外一半 x=func(i); if(x>b) break; if(is_prime(x)==1){ cout<<x<<endl; } } return 0;}
练习网址:http://acm.hnust.cn/JudgeOnline/problem.php?id=1144
- 回文素数Prime Palindromes
- Prime Palindromes(回文素数)
- Prime Palindromes--回文+素数判断
- Prime Palindromes( 素数回文) C++实现
- USACO 1.5 PROB Prime Palindromes <构造回文+素数判定>
- USACO-Prime Palindromes(部分筛法判素数,回文数生成)
- USACO-section1.5 Prime Palindromes[回文数][素数]
- 回文质数 Prime Palindromes
- USACO 1.5.2 Prime Palindromes 回文质数
- USACO:1.5.2 Prime Palindromes 回文质数
- [USACO1.5]回文质数 Prime Palindromes
- USACO1.5]回文质数 Prime Palindromes
- 【USACO1.5】回文质数 Prime Palindromes
- USACO1.5 回文质数 Prime Palindromes
- P1217 [USACO1.5]回文质数 Prime Palindromes
- P1217 [USACO1.5]回文质数 Prime Palindromes
- P1217 [USACO1.5]回文质数 Prime Palindromes
- [USACO1.5]回文质数 Prime Palindromes
- Android《第一行代码》第5章 笔记
- Solr.NET快速入门(三)【高亮显示】
- 【解题报告】Vijos1143 三取方格数
- linux下 C语言perror函数的作用
- 二叉树的所有路径
- Prime Palindromes(回文素数)
- Codeforces Round #237 (Div. 2) B. Marathon
- 使用apache POI操作Excel
- Linux下C语言执行MySQL语句
- JPA入门例子(采用JPA的hibernate实现版本)
- web前端语言规范
- 第9章(3) 适配器设计模式
- valgrind检查内存泄漏
- jvm的基本结构