1 条题解

  • 0
    @ 2024-11-2 21:48:39

    这个程序是用来找出两个数a和b之间(包括a和b),所有正着读和倒着读都是素数的数。具体步骤如下:

    1. 逆序函数:将一个数逆序。
    2. 素数检查:判断一个数是否是素数。
    3. 遍历:从a到b逐个检查每个数及其逆序数。
    4. 输出:如果一个数和它的逆序数都是素数,就输出这个数。
    #include<bits/stdc++.h>
    using namespace std;
    
    
    int f(int num){
    	int i=0,t=0;
    	while(num>0){
    		t=t*10+num%10;
    		num/=10;
    	}
    	return t;
    }
    
    bool isPrime(int n){
        if(n <= 1) return false;
        if(n == 2) return true; // 2是最小的素数
        if(n % 2 == 0) return false; // 排除偶数
        for(int i=3; i*i <= n; i+=2){
            if(n % i == 0) return false;
        }
        return true;
    }
    
    int main(){
        int a,b;
        cin>>a>>b;
        for(int i=a; i<=b; i++){
            if(isPrime(i) && isPrime(f(i))) {
                cout<<i<<endl;
            }
        }
        return 0;
    }
    
    • 1

    信息

    ID
    128
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    27
    已通过
    26
    上传者