本题有部分是直接ctrl+c搞到的
所以不代表我这个辣鸡的实力
我很菜的
所以求大佬给出修改建议!!
感谢!!!
#include <iostream>
#include<algorithm>
#include<vector>
#include<math.h>
using namespace std;
bool isp(int num) {
if (num < 0) {
return false;
}
int originalNum = num;
int reversedNum = 0;
while (num > 0) {
reversedNum = reversedNum * 10 + num % 10;
num /= 10;
}
return originalNum == reversedNum;
}
std::vector<bool> sieveOfEratosthenes(int n) {
std::vector<bool> isPrime(n+1, true);
isPrime[0] = isPrime[1] = false;
int sqrtN = sqrt(n);
for (int i = 2; i <= sqrtN; i++) {
if (isPrime[i]) {
for (int j = i*i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
return isPrime;
}
bool isPrime(int n) {
std::vector<bool> primes = sieveOfEratosthenes(n);
return primes[n];
}
int main() {
int a = 0, b = 0;
cin >> a >> b;
for (int i = a; i <= b; i++) {
if (i % 2 != 0) {
if (isp(i)&&isPrime(i)) {
printf("%d\n", i);
}
}
}
return 0;
}