10 条题解

  • 2
    @ 2021-5-24 13:43:03

    C++ :

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #define Maxn 1009
    using namespace std;
    int dat[Maxn],len0=0,n;
    bool isPrim(int m);
    int main()
    {
        scanf("%d",&n);
        dat[len0]=11;
        for(int i1=1; i1<=9; i1=i1+2){
            for(int i2=0; i2<=9; i2++){
                int m=i1*101+i2*10;
                if(isPrim(m)){
                    dat[++len0]=m;
                }
            }
        }
    
        for(int i1=1; i1<=9; i1=i1+2){
            for(int i2=0; i2<=9; i2++){
                int m=i1*1001+i2*110;
                if(isPrim(m)){
                    dat[++len0]=m;
                }
            }
        }
        for(int i=0; i<=len0; i++){
            if(dat[i]<=n){
                printf("%d\n",dat[i]);
            }else{
                break;
            }
        }
        return 0;
    }
    
    bool isPrim(int m)
    {
        bool flag=true;
        int k=sqrt(m)+0.05;
        for(int i=2; i<=k; i++){
            if(m%i==0){
                flag=false;
                break;
            }
        }
        return flag;
    }
    
    

    信息

    ID
    122
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    1685
    已通过
    439
    上传者