B2139 区间内的真素数

前置芝士

to_string(int n):将 n 转换为 string

stoi(string s):将 s 转换为 int

reverse(iterator a, iterator b):反转 a 到 b 之间的区间。

思路

暴力模拟,枚举 mn 的每一个数。

依次判断区间内的数,和它的反序是否素数。

转换反序时,用 to_string 转换为 string,再用 reverse 反转,再用 stoi 转成 int

注意,和无解情况的判断,可以用两个bool变量记录状态。

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int n, m;bool f, b;
bool isp(int n)
{
    if(n == 1) return 0;
    if(n == 2) return 1;
    if(n % 2 == 0) return 0;
    for(int i = 3;i * i <= n;++i)
        if(n % i == 0) return 0;
    return 1;
}
int main()
{
    cin >> n >> m;
    for(int i = n;i <= m;++i)
    {
        string t = to_string(i);
        reverse(t.begin(), t.end());
        int j = stoi(t);
        if(isp(i) && isp(j))
        {
            if(f) cout << ",";
            cout << i;f = 1;b = 1;
        }
    }
    if(!b) cout << "No";
    return 0;
}
posted @   Jijidawang  阅读(37)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示