我被逼疯了,t1根本出不来
查看原帖
我被逼疯了,t1根本出不来
540870
Yzmddsw楼主2021/11/21 10:50

3个tle,还是不行a

大佬讲一下,谢谢

#include<iostream>
#include<cstdio>
using namespace std;
bool yam(int x)
{
    while(x!=0)
    {
        if(x%10==7)
        {
            return 1;
        }
        x=x/10;
    }
    return 0;
}

int k[10000005];
int main()
{
k[1]=1;
k[2]=2;
k[3]=3;
k[4]=4;
k[5]=5;
k[6]=6;
int a,b[10000005];
    scanf("%d",&a);
    
    for(int i=0;i<a;i++)
    {
    scanf("%d",&b[i]);
    }
     for(int i=7;i<10000005;i+=1)
    {
        if(i%7==0)
        i++;
        if(yam(i)==0&&k[i]!=-1)
        {
        k[i]=i;
        }
        if(k[i]==0)
        {
        for(int j=1;j*i<10000005;j++)
        {
        k[j*i]=-1;
        }
        }
    }
    for(int i=0;i<a;i++){
    if(k[b[i]]==0||k[b[i]]==-1)
    printf("-1\n");
    else if(yam(b[i])==0){
    b[i]=b[i]+1;
    for(;k[b[i]]!=b[i];b[i]++);       
    printf("%d\n",b[i]);
    }

    }

    return 0;
}
2021/11/21 10:50
加载中...