in ra và đếm các vừa là số nguyên tố vừa là số đối xứng trong 1 đoạn ab (kiểm tra số nguyên tố bằng sàng eratosthenes) code c++ ạ
1 câu trả lời
#include <iostream>
#include <cstring>
#include <sstream>
using namespace std;
int a,b;
bool prime[100001];
void sieve(int n) {
memset(prime, true, sizeof(prime));
prime[0] = prime[1] = false;
for(int i = 2; i * i <= n; ++i)
if(prime[i])
for(int j = i * i; j <= n; j += i)
prime[j] = false;
}
string toString(int num) {
stringstream ss;
ss << num;
string str;
ss >> str;
return str;
}
bool dx(int n) {
string s = toString(n);
for(int i = 0; i < s.size() / 2; ++i)
if(s[i] != s[s.size() - i - 1])
return false;
return true;
}
int main() {
cin >> a >> b;
sieve(b);
for(int i = a; i <= b; ++i)
if(prime[i] && dx(i))
cout << i << ' ';
}