zoukankan      html  css  js  c++  java
  • hdu 1431素数回文

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

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 bool prime[10000002];//int一直超内存,wa好多次,改成bool就过了 
     4 int pos[664580];
     5 int num;
     6 void puan_prim()
     7 {
     8     memset(pos,-1,sizeof(pos));
     9     num=0;
    10     memset(prime,false,sizeof(prime));
    11     for(int i=2;i<=10000001;i++)
    12     {
    13         if(!prime[i])
    14         {
    15             num++;
    16             pos[num]=i;
    17         }
    18         for(int j=1;j<=num&&i*pos[j]<=10000001;j++)
    19         {
    20             prime[i*pos[j]]=true;
    21             if(i%pos[j]==0) break;
    22         }
    23     }
    24 }
    25 int main()
    26 {
    27     int n;
    28     int b;
    29     char str1[11];
    30     char str2[11];
    31     puan_prim();
    32     while(~scanf("%d%d",&n,&b))
    33     {
    34     //printf("%d\n",num);
    35         int i;
    36         int len;
    37         int start,end;
    38         for(i=1;i<=num;i++)
    39         if(pos[i]>=n) break;
    40         start=i;
    41         if(b<=9989899)
    42         {
    43             
    44         
    45         for(int i=start;pos[i]<=b&&pos[i]>0;i++)
    46         {
    47             sprintf(str1,"%d",pos[i]);
    48             len=strlen(str1);
    49             int flag=0;
    50             for(int jj=0;jj<len;jj++)
    51             {
    52                 if(str1[jj]!=str1[len-jj-1])
    53                 {
    54                     flag=1;
    55                     break;
    56                 }
    57             }
    58              
    59             
    60             if(flag==0) printf("%s\n",str1);
    61         }
    62         }
    63         else
    64         {
    65             
    66             for(int i=start;pos[i]<=9989899&&pos[i]>0;i++)
    67         {
    68             sprintf(str1,"%d",pos[i]);
    69             len=strlen(str1);
    70             int flag=0;
    71             for(int jj=0;jj<len;jj++)
    72             {
    73                 if(str1[jj]!=str1[len-jj-1])
    74                 {
    75                     flag=1;
    76                     break;
    77                 }
    78             }
    79              
    80             
    81             if(flag==0) printf("%s\n",str1);
    82         }
    83         }
    84         printf("\n");
    85     }
    86 }
  • 相关阅读:
    Linux 环境下umount, 报 device is busy 的问题分析与解决方法
    WScript与CScript的区别
    20170803上课笔记
    20170802上课随笔
    20170801上课笔记
    20170731上课笔记
    20170729上课笔记
    20170727上课笔记
    20170726上课笔记
    20170725上课笔记
  • 原文地址:https://www.cnblogs.com/1114250779boke/p/2657635.html
Copyright © 2011-2022 走看看