计蒜客信息学8月普及组模拟赛B-DD爱数数

题目大意:区间[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;
}
全部评论

相关推荐

船长想实习:我啥技术不会决定去试试,然后进去也不干活就搅局可以吗?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务