2 条题解

  • 0
    @ 2025-10-8 16:55:02
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e6+10;
    int a[N],n;
    void pd(int x)
    {
        if(x<2) return ;
        int t=sqrt(x+1);
        for(int i=2;i<=t;i++)if(x%i==0) return ;
        a[++n]=x;
    }
     
    int main()
    {
        n=0;
        for(int d1=1;d1<=9;d1+=2)pd(d1);
         
        for(int d1=1;d1<=9;d1+=2)pd(d1*11);
         
        for(int d1=1;d1<=9;d1+=2)
            for(int d2=0;d2<=9;d2++)
                pd(d1*101+d2*10);
         
        for(int d1=1;d1<=9;d1+=2)
            for(int d2=0;d2<=9;d2++)
                pd(d1*1001+d2*110);
         
        for(int d1=1;d1<=9;d1+=2)
            for(int d2=0;d2<=9;d2++)
                for(int d3=0;d3<=9;d3++)
                    pd(d1*10001+d2*1010+d3*100);
         
        for(int d1=1;d1<=9;d1+=2)
            for(int d2=0;d2<=9;d2++)
                for(int d3=0;d3<=9;d3++)
                    pd(d1*100001+d2*10010+d3*1100);
         
        for(int d1=1;d1<=9;d1+=2)
            for(int d2=0;d2<=9;d2++)
                for(int d3=0;d3<=9;d3++)
                    for(int d4=0;d4<=9;d4++)
                        pd(d1*1000001+d2*100010+d3*10100+d4*1000);
         
        for(int d1=1;d1<=9;d1+=2)
            for(int d2=0;d2<=9;d2++)
                for(int d3=0;d3<=9;d3++)
                    for(int d4=0;d4<=9;d4++)
                        pd(d1*10000001+d2*1000010+d3*100100+d4*11000);
        int x,y;scanf("%d%d", &x, &y);
        int l=lower_bound(a+1,a+n+1,x)-a;
        int r=upper_bound(a+1,a+n+1,y)-a-1;
        for(int i=l;i<=r;i++) printf("%d\n",a[i]);
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:54:52
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1e6+10;
      int a[N],n;
      void pd(int x)
      {
          if(x<2) return ;
          int t=sqrt(x+1);
          for(int i=2;i<=t;i++)if(x%i==0) return ;
          a[++n]=x;
      }
       
      int main()
      {
          n=0;
          for(int d1=1;d1<=9;d1+=2)pd(d1);
           
          for(int d1=1;d1<=9;d1+=2)pd(d1*11);
           
          for(int d1=1;d1<=9;d1+=2)
              for(int d2=0;d2<=9;d2++)
                  pd(d1*101+d2*10);
           
          for(int d1=1;d1<=9;d1+=2)
              for(int d2=0;d2<=9;d2++)
                  pd(d1*1001+d2*110);
           
          for(int d1=1;d1<=9;d1+=2)
              for(int d2=0;d2<=9;d2++)
                  for(int d3=0;d3<=9;d3++)
                      pd(d1*10001+d2*1010+d3*100);
           
          for(int d1=1;d1<=9;d1+=2)
              for(int d2=0;d2<=9;d2++)
                  for(int d3=0;d3<=9;d3++)
                      pd(d1*100001+d2*10010+d3*1100);
           
          for(int d1=1;d1<=9;d1+=2)
              for(int d2=0;d2<=9;d2++)
                  for(int d3=0;d3<=9;d3++)
                      for(int d4=0;d4<=9;d4++)
                          pd(d1*1000001+d2*100010+d3*10100+d4*1000);
           
          for(int d1=1;d1<=9;d1+=2)
              for(int d2=0;d2<=9;d2++)
                  for(int d3=0;d3<=9;d3++)
                      for(int d4=0;d4<=9;d4++)
                          pd(d1*10000001+d2*1000010+d3*100100+d4*11000);
          int x,y;scanf("%d%d",&x,&y);
          int l=lower_bound(a+1,a+n+1,x)-a;
          int r=upper_bound(a+1,a+n+1,y)-a-1;
          for(int i=l;i<=r;i++) printf("%d\n",a[i]);
          return 0;
      }
      • 1

      【模拟】[USACO1.5] 回文质数 Prime Palindromes

      信息

      ID
      997
      时间
      1000ms
      内存
      128MiB
      难度
      4
      标签
      递交数
      119
      已通过
      54
      上传者