题目大意:区间[l, r]有多少个回文素数?
1、暴力枚举
2、先判断回文,再判断素数:回文判断复杂度稳定且不超时。
3、判断素数,只需要枚举到sqrt(n)
#include <bits/stdc++.h> using namespace std; int n, m, i, j, k, x, y; int hui(int x){ int i, n=0, a[9]={0}; while(x) a[++n] = x%10, x /= 10; for(i=1; i<=n-i+1; i++){ if(a[i] != a[n-i+1]) return 0; } return 1; } int su(int x){ if(x < 2) return 0; for(int i=2; i*i<=x; i++){ if(x%i == 0) return 0; } return 1; } int main(){ scanf("%d%d", &x, &y); for(i=x; i<=y; i++){ if(hui(i) && su(i)) n++; } printf("%d\n", n); return 0; }