题目描述:
输入任意两个正整数m<n,求得两个数之间的所有回文素数并输出。
参考代码
#include <iostream>
using namespace std;
int get_length(int x);
int main() {
int m = 0, n = 0;
int count = 0;
//int temp = 0;
bool NotSuShu;
std::cin >> m >> n;
for (int i = m; i <= n; i++)
{
NotSuShu = false;
for (int j = 2; j < i / 2; j++)
{
if (i%j == 0)
{
NotSuShu = true;
break;
}
}
if (!NotSuShu)
{
int huiwen = 1;
int l = get_length(i);
if (l > 1){
int * arry = new int[l];
int j,temp=i;
for (j = 0; j < l; j++) {
arry[j] = temp % 10;
temp = temp / 10;
}
for (j = 0; j <= l / 2; j++)
if (arry[j] != arry[l - j - 1]) {
huiwen = 0;
break;
}
free (arry);
}
if (huiwen)
cout << i << endl;
}
}
cout << endl;
}
int get_length(int x)
{
int leng = 0;
while (x)
{
x /= 10;
leng++;
}
return leng;
}
例如,输入
输出结果如下: