回文质数
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
因为151既是一个质数又是一个回文数(从左到右和从右到左看是一样的),所以151是回文质数.
写一个程序来找出范围[a,b](5<=a<b<=100,000,000)间的所有回文质数.
输入:
第一行 两个整数:a和b.
输出:
输出一个回文质数的列表,一行一个.
输入样例:
5 500
输出样例:
5
7
11
101
131
151
181
191
313
353
373
383
本题我做了较长的时间,判断回文质数很简单即isPrime();isSyS();两个if语句嵌套即可实现,但是提交后发现时间复杂较高,故思考因为判断素数的复杂度较高,应该先判断回文再判断素数,并且对于回文的判断使用数组存储各位数字然后在进行对比也较为冗余,想到回文数正反值相同,所以更改代码如下:
#include<iostream>
#include<math.h>
using namespace std;
bool isPrime(int val){
int q;
for(q = 2; q <= sqrt(val); q++){
if(val % q == 0){
return false;
}
}
if(

本文探讨了如何优化算法以解决在指定范围内找到回文质数的问题。通过分析回文数和质数的特性,减少了不必要的计算,提高了程序效率。文中列举了部分回文质数实例,并分享了优化后的代码思路。
最低0.47元/天 解锁文章
927





