求真素数:
#include<iostream>
#include <cmath>
using namespace std;
int digits_total(int digit) {
int s = 0;
int i = 1;
while (digit / i > 0) {
i = i * 10;
s++;
}
return s;
}
int reverse(int num2) {
int l2 = 0;
int d = digits_total(num2);
int ar[d];
for (int i = 0, j = 1; i < d; i++, j = j * 10) {
ar[i] = num2 / j % 10;
}
for (int i = 1; i <= d; i++) {
l2 = l2 + ar[i - 1] * pow(10, d - i);
}
return l2;
}
bool is_prime(int num) {
bool is = 0;
if (num == 1) {
return 0;
} else {
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return 0;
} else {
is = 1;
}
}
if (is == 1) {
return 1;
}
}
}
int main() {
int m, n, j=0;
cin >> m >> n;
for (int i = m; i <= n; i++) {
if (is_prime(i) && is_prime(reverse(i))) {
j++;
if (j == 1) {
cout << i;
} else {
cout << "," << i;
}
}
}
}