我已经看到过这个问题的以前的解决方案,但它都是带有检查功能的完整搜索,对我来说不够快。
我正在开发一个 C++ 程序,试图在给定的整数范围内高效地生成所有素数回文。对于主要部分,我通过消除 2 和 3 的所有倍数来减少我测试的除数,从而创建了一个快速素数测试器,不过这里的改进建议也将受到赞赏(函数粘贴在下面)。
我的主要问题是我需要足够快地生成回文,而不使用传统的完整搜索和回文测试来缓慢增加测试的整数。我当前的搜索代码和素性测试粘贴在下面。
我尝试增加中间数字的数字,然后增加外部数字的数字,但是因为随着时间的推移,会添加更多的数字,我什至无法拼凑出一个算法。
素性测试:
bool CheckPrime(int n){
switch (n) {
case 1: return false; break;
case 2: return true; break;
case 3: return true; break;
default: break;
}
if (n % 2 == 0 || n % 3 == 0) {
return false;
}
for (int i = 5; i * i <= n; i = i + 6) {
if (n % i == 0 || n % (i + 2) == …Run Code Online (Sandbox Code Playgroud)