x
  • 板块灌水区
  • 楼主J_K_ROWLING
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/28 19:17
  • 上次更新2024/12/28 22:05:37
查看原帖
x
1500258
J_K_ROWLING楼主2024/12/28 19:17
#include <bits/stdc++.h>
using namespace std;
bool is_ss(int j){
    if(j==1){
        return 0;
    }
    if(j==2){
        return 1;
    }
    for(int i=2;i<=sqrt(j);i++){
        if(j%i==0){
            return 0;
        }
    }
    return 1;
}
int f(int x){
    int a[10],len=1,n;
    while(x){
        a[len++]=x%10;
        x/=10;
    }
    for(int i=1;i<=len;i++){
        n=n*10+a[i];
    }
    return n;
}
int main(){
    int l,r,a[100000],len=1;
    cin>>l>>r;
    for(int i=l;i<=r;i++){
        if(is_ss(i)&&!is_ss(f(i))){
            a[len++]=i;
        }
    }
    len--;
    if(!len){
        cout<<"No";
        return 0;
    }
    for(int i=1;i<=len-1;i++){
        cout<<a[i]<<",";
    }
    cout<<a[len];
    return 0;
}

描述 找出正整数 M 和 N 之间(N 不小于 M)的所有真素数。 真素数的定义:如果一个正整数 P 为素数,且其反序也为素数,那么 P 就为真素数。

例如, 1 1 11, 1 3 13 均为真素数,因为 1 1 11 的反序还是为 1 1 11, 1 3 13 的反序为 3 1 31 也为素数。

输入描述 输入两个数 M 和 N,空格间隔,1≤M≤N≤100000。 输出描述 按从小到大输出 M 和 N 之间(包括 M 和 N)的真素数,逗号间隔。如果之间没有真素数,则输出 No。 输入输出样例 输入样例 1 10 35 输出样例 1 11,13,17,31

2024/12/28 19:17
加载中...