我好鸡贼
查看原帖
我好鸡贼
421451
ReqCxmChtChr楼主2021/12/3 22:47

我随随便便写了一个代码A了70分,加了一点优化就AC了???

#include<bits/stdc++.h>
using namespace std;
inline int readint(){
   int x=0,f=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){
       if(ch=='-')
           f=-1;
       ch=getchar();
   }
   while(ch>='0'&&ch<='9'){
       x=(x<<1)+(x<<3)+(ch^48);
       ch=getchar();
   }
   return x*f;
}

short can[1401];//14000001
int conti[1401];
bool haveseven(int a){
   if(a==0){
       return true;
   }
   return ((a%10)!=7)&&haveseven(a/10);
}
int main(){
   memset(can,-1,sizeof(can));
   for(int i=1;i<=1400;i++){
       if(can[i]==-1){
           can[i]=haveseven(i);
       }else{
           continue;
       }
       for(int j=i*7;j<=1400;j*=7){
           can[j]=0;
       }
       if(can[i]==0){
           for(int j=i+i;j<=1400;j+=i){
               can[j]=0;
           }
       }
   }
   for(int i=1400;i>=1;i--){
       if(can[i]==1){
           conti[i]=0;
       }else{
           if(i==1400){
               continue;
           }
           conti[i]=conti[i+1]+1;
       }
   }
   int t;
   scanf("%d",&t);
   for(int i=1;i<=t;i++){
       int k;
       k=readint();
       if(can[k]==0){
           printf("-1\n");
           continue;
       }
       k++;
       printf("%d\n",k+conti[k]);
   }
   system("pause");
}
2021/12/3 22:47
加载中...