• hdu 1431 素数回文


    http://acm.hdu.edu.cn/showproblem.php?pid=1431

    run了好几次,当自己郁闷的时候突然看到了一句话,偶数位的回文串都可以被11整除当然要除了11,说明八位的数据可以全部忽略从9989899开始,这样问题就简单多了,减少了很多数的筛选与数组的空间,我们还可以先去除所有的偶数位的数再来筛选,这样可能更简单,看过还有打表的,真是佩服。。。

    #include <stdio.h>

    #include <string.h>

    #include <stdlib.h>

    #include <math.h>

    bool p[9989900];

    int d[100000],k;

    void prim()

    {

         for(int i=0;i<=3163;++i)

         { 

                 p[i]=0;

         }

         k=0;

         for(int i=2;i<=3163;++i)//素数筛选法 

         {

                 if(!p[i])

                 {

                     for(int j=i*i;j<=9989899;j+=i)

                     p[j]=1;    

                 }

         }

    }

    bool mm(int x)

    {

           int  t=x,v=0;

           while(t)

           {

                v=v*10;

                v+=t%10;

                t=t/10;

           }

           return x==v;

    }

    int main()

    {

        int a,b,i;

        k=0;

        prim();

        for(int i=5;i<=9989899;++i)

        if(!p[i]&&mm(i))

        d[k++]=i;

        while(scanf("%d%d",&a,&b)!=EOF)

        {

             for(int i=0;i<k;++i)

             {

                     if(d[i]<a) continue;

                     else if(d[i]<=b)  printf("%d\n",d[i]);

                     else

                     break;

             } 

             printf("\n");

        }

      //  system("pause");

        return 0;

    }

  • 相关阅读:
    WLAN 802.11 a/b/g PHY Specification and EDVT Measurement III
    L233
    L232 No methane on Mars
    leetcode 38 Count and Say ---java
    海量字符串查找——bloom filter,c
    leetcode 37 Sudoku Solver java
    mount --bind使用方法
    ECS API
    Linux挂载磁盘
    ECS简述
  • 原文地址:https://www.cnblogs.com/yuelingzhi/p/2127974.html
Copyright © 2020-2023  润新知