最后一个超时该怎么改,求助大佬
查看原帖
最后一个超时该怎么改,求助大佬
827254
want_AC_ing楼主2023/4/14 17:04
#include <stdio.h>
#include <math.h>

int main()
{
  int a,b;
  scanf("%d%d",&a,&b);
  int n,i,j,k,m,ma,mb=0;
  int an[10000],bn[10000],cn[10000];
    if(a%2==0)a+=1;
    for(n=a;n<=b;n+=2)//a到b的范围
    {
        j=n;//保护n的值
        for(i=0;j;i++)//倒序存放在数组bn[]i位
        {
            bn[i]=j%10;
            j/=10;
           // printf("%d",bn[i]);
        }
         m=i-1;
        for(k=0;k<=i-1;k++)//倒叙变顺序
        {

            an[k]=bn[m];
            m--;
           // printf("%d\n",an[k]);
        }
        for(k=0;k<=i;k++)//判断是否位回文数
        {
            ma=1;
            if(an[k]!=bn[k])
            {
              ma=0;break;
            }
        }
        if(ma){cn[mb]=n;mb++;}//储存回文数
        //printf("cn=%d\n",cn[mb]);
    }
    /*for(i=0;i<=mb;i++)
    {
        //printf("%d\n",cn[i]);
    }*/
    int cd,vf;
   for(i=0;i<=mb-1;i++)//判断质数
   {
       vf=1;
       for(cd=2;cd*cd<=cn[i];cd++)
       {
           if(cn[i]%cd==0)
           {
               vf=0;break;
           }
       }
       if(vf)printf("%d\n",cn[i]);
   }
    return 0;
}

2023/4/14 17:04
加载中...