两个代码一摸一样的就是主函数不一样,一个是先判断回文数,另外一个先判断素数,第一个过了,第二个超时,这是咋回事呀!另外祝大家新年快乐! 这是过了的代码:
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n) {
int k = sqrt(n);
for (int i = 2; i <= k; i++) {
if (n % i == 0)
return false;
}
return true;
}
bool huiwen(int n) {
int ans = 0;
int temp = n; //设置临时变量
while (n) {
ans = ans * 10 + n % 10;
n /= 10;
}
if (ans == temp)
return true;
return false;
}
int main() {
int a, b;
cin >> a >> b;
if (a % 2 == 0)
a++;
if (b >= 9989899)
b = 9989899;
for (int i = a; i <= b; i += 2) {
if (huiwen(i) && isPrime(i))
cout << i << endl;
}
return 0;
}
没过的代码的主函数:
int main() {
int a, b;
cin >> a >> b;
if (a % 2 == 0)
a++;
if (b >= 9989899)
b = 9989899;
for (int i = a; i <= b; i += 2) {
if (isPrime(i) && huiwen(i))
cout << i << endl;
}
return 0;
}
请教一下大家!